成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

優化解耦的設計思考

開發 架構
對這樣龐大工程修改的邏輯越來越多,日后想要同步升級就要面對更大的復雜性和風險。跟隨開源項目同步升級,尋求上層的創新和優化才比較適合未來的產品開發策略。深度定制的方式會遭遇越來越多的尷尬。

基于開源項目進行開發已經越來越普遍,WebKit和Android都有很多的深度定制的版本。

 

對這樣龐大工程修改的邏輯越來越多,日后想要同步升級就要面對更大的復雜性和風險。跟隨開源項目同步升級,尋求上層的創新和優化才比較適合未來的產品開發策略。深度定制的方式會遭遇越來越多的尷尬。

 

修改是必要的,但如何最大化地降低耦合和隔離對原生代碼邏輯的修改?邏輯碎片的風險也許大家都體會過。以下是我對一個問題的思考,與大家分享,拋磚引玉。

1. 問題定義

首先交待一下當前的狀況。

1.有對WebKit原生內核中HTMLMediaElement修改的需求。

由于實現的限制,導致了必須對HTMLMediaElement進行修改。

 

2. 不同平臺的修改邏輯混雜在一起。

在不同平臺上的適配內容也不盡相同,所以其中有許多使用宏來區分系統的修改。

問題就是有沒有可能將這些修改的實現放到獨立的文件中去,在HTMLMediaElement中只做少量的修改,最大化的減少對原生代碼的修改?或者是有規則的修改。總之要便于和最新的WebKit代碼同步。

2. 問題分析

首先從設計上來看這個問題,可以將WebKit的實現視為核心邏輯,將我們的修改視為一個輔助邏輯或特殊邏輯。

這樣就可以有一個設計上問題定義:把這部分邏輯從主邏輯中抽離的設計方法,但不改變原來的類的層次架構。

繼承并不合適。因為一部分HTMLMediaElement中的成員定義為protected,它本身已經被HTMLAudioElement和HTMLVideoElement所繼承。還有對應的Render、JS Binding與它的對應問題。遠不是在parser位置將video和audio對應的類改成新類就可以的, 而是需要更改到HTMLMediaElement的定義。

解決方案就是提供一個Helper類,如MediaElementHelper來處理特殊邏輯。

 

 

 

2. 實現說明

2.1 建構

在HTMLMediaElement的建構函數中加入:

m_helper = MediaElementHelper::create(this);

不同平臺可以使用相同的類定義,但實現不同。

2.2 相互調用

helper又為HTMLMediaElement的友類,就可以訪問HTMLMediaElement的私有變量,或者執行私有成員函數。如果認為這樣風險高,也可以像下面這樣專為helper增加一些訪問私有成員的接口。

 

 

這樣在需要進行特殊邏輯判斷和處理的地方,就使用m_helper來調用執行。具體的行為則在不同的helper類中實現。

3. 評估

關于helper的使用一直是有爭議,網上也有很多避免使用helperclass的討論。主要論調在于認為helper class是過程化的產物,思考時是考慮的是流程上的邏輯補充。雖然在目前場景下,這也算是一個解決方案,但不是最佳方案,因為這些做同樣增加了設計的復雜性。

原文鏈接:http://blog.csdn.net/horkychen/article/details/8749050

責任編輯:林師授 來源: Horky的博客
相關推薦

2013-10-11 09:48:59

數據中心

2014-02-26 09:18:47

應用交付優化服務水平協議

2021-11-24 22:47:07

Docker開發容器

2013-05-21 10:06:11

數據庫查詢優化

2015-07-17 10:05:03

面試思考

2023-02-17 13:08:31

2013-07-08 09:49:23

2022-04-15 11:46:09

輕量系統解耦鴻蒙操作系統

2018-06-14 09:35:35

2021-06-10 10:02:19

優化緩存性能

2013-05-06 09:09:30

應用交付優化應用交付優化

2013-09-16 11:46:40

CDN前端性能Radware

2019-09-17 09:21:01

2010-12-15 10:03:17

twitter

2018-08-27 11:36:47

Worktile

2023-11-21 07:21:39

火山引擎計算治理自動化

2012-03-02 19:16:23

2012-03-04 09:48:00

2015-10-26 10:32:01

前端優化工程化

2010-09-01 17:17:08

無線網WLAN
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 蜜桃在线视频 | 日韩在线视频免费观看 | 久草资源| 午夜精品久久久久久久久久久久 | 国产一区在线视频 | 国产成人免费 | 亚洲国产精品91 | 国产一区二区三区四区hd | 成人久久 | 中文字幕亚洲无线 | 激情欧美一区二区三区中文字幕 | 亚洲一区中文字幕 | 中文字幕一区二区三区在线观看 | 国产黄色网址在线观看 | 国产综合精品一区二区三区 | 99免费精品视频 | 欧美日韩精品一区二区 | 午夜免费网 | 日韩中文字幕一区二区 | 精品美女 | 国产一区精品在线 | 亚洲视频在线免费观看 | 伊人二区 | 欧美一级黄色片在线观看 | 高清欧美性猛交 | 亚洲免费一区二区 | av福利网站 | 久久久久久国产精品免费免费狐狸 | 免费观看一级特黄欧美大片 | av一区二区在线观看 | 四虎影 | 精品久久久久久久久久久久久久 | 国产精品无码永久免费888 | 久久99国产精品久久99果冻传媒 | 欧美乱码精品一区二区三区 | 精品视频久久久久久 | 国产精品国产精品国产专区不卡 | 91亚洲精选 | 欧美一区二区三区久久精品 | 亚洲精选一区 | 一区二区免费视频 |