国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

常見設計模式

2019-11-09 15:26:19
字體:
來源:轉載
供稿:網友

Android開發中常見設計模式

1.工廠方法模式(5)

? 屬于類創建型模式。又叫工廠方法模式,又被成為多態工廠模式,因為它完全符合開閉原則。工廠父類負責定義創建產品對象的公共接口,工廠子類負責不同產品的具體實現,增強了代碼的擴展性。

? 開閉原則:類對于擴展是開放的,但是對于修改是封閉的。

? 包含有四個角色:PRoduct抽象產品,ConcreteProduct體產品,Factory抽象工廠,ConcreteFactory具體工廠。

? 當只有一個具體工廠時,在具體工廠中可以創建所有的產品對象,并且工廠設計方法為靜態設計方法時,工廠方法模式將退化為簡單工廠模式。

工廠模式保持了簡單工廠模式的優點,且客服了簡單工廠模式的缺點,完全符合開閉原則。但是在增加新工廠時,會成對增加系統類數, 增加了系統的復雜性。

2.簡單工廠模式(4)

? 屬于類創建型模式。簡單工廠模式最大的有點在于對象的創建和對象的使用分離,可以降低代碼的耦合度,使得兩者修改起來都相對容易;其二,靜態方法,調用方便;但是其最大的缺點在于工廠類不夠靈活,增加新的產品需要修改工廠內部的判斷邏輯,而且一旦產品較多時,工廠內部邏輯顯得較為復雜,違背了開閉原則。

? 適用情況:工廠類負責創建的對象比較少;調用者只需要傳入幾個參數,并不關心其創建細節。

3.抽象工廠模式(5)

? 屬于類創建型模式。一個產品類的實例如何被創建、組合和表達的細節,我們并不需要知道和關心時,那么就適用于所有的工廠類模式。

4.單例模式(4)

? 單例模式(Singleton Pattern):單例模式確保某一個類只有一個實例。

? 單例模式的要點有三個:一是某個類只能有一個實例;二是它必須自行創建這個實例;三是它必須向進程提供這個實例。單例模式是一個對象創建型模式。

? 單例類,必須提供一個私有的構造函數,確保調用者無法通過new關鍵字實例化它。除此之外還需要一個公共的靜態工廠getInstance方法來獲得實例和一個自身的私有靜態成員變量。

? 作用;避免產生過多的對象消耗過多的資源,或者說有的對象有且只能有一個。

? 懶漢式單例最大的弊端在于:已經實例化后,多線程還在串行執行getInstance方法,浪費不必要的資源。所以應該將synchronized關鍵字移到判空后面,雙層判空方法。

5.觀察者模式
6.代理模式
7.適配器模式
8.建造者模式(builder模式)

? builder模式特點;

需要生成的產品對象有復雜的內部結構,這些產品對象通常包含多個成員屬性。需要生產的產品對象的屬性相互依賴,需要指定其生成順序。
參考鏈接:http://design-patterns.readthedocs.io/zh_CN/latest/index.html

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汾阳市| 华容县| 滦平县| 沾益县| 松桃| 南宁市| 理塘县| 西藏| 平顺县| 上林县| 吴桥县| 苗栗市| 资溪县| 开江县| 庆阳市| 大化| 高陵县| 安康市| 东乡族自治县| 五家渠市| 陆河县| 兴化市| 庆城县| 七台河市| 湟中县| 伽师县| 佛学| 上犹县| 白银市| 如皋市| 宜都市| 馆陶县| 庆安县| 和林格尔县| 方城县| 西乌珠穆沁旗| 南宫市| 大宁县| 焦作市| 德昌县| 绥阳县|