『螞蟻學模式』之實例化策略(Strategy)模式
摘要: 策略模式屬于對象的行為模式。
其用意是針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,從而使得它們可以相互替換。
閱讀全文
『螞蟻學模式』之實例化門面(Facade)模式
摘要: 門面模式是對象的結構模式。
門面模式要求一個子系統的外部與其內部的通信必須通過一個統一的門面(Facade)對象進行。
閱讀全文
『螞蟻學模式』之實例化代理(Proxy)模式
摘要: 給某一個對象提供一個代理對象,并由代理對象控制對原對象的引用。
閱讀全文
『螞蟻學模式』之實例化裝飾(Decorator)模式
摘要: 又稱包裝(wrapper)模式。
以對客戶端透明(客戶端并不會覺得對象在裝飾前后有什么不同,老孫就是老孫!^_^)的方式擴展對象的功能,是繼承關系的一個替代方案。
閱讀全文
『螞蟻學模式』之實例化合成(Composite)模式
摘要: 合成模式將對象組織到樹結構中,可以用來描述整體與部分的關系。合成模式可以使客戶端將單純元素與復合元素同等對待。
適用場合:
1. 需要描述對象的部分和整體的等級結構。
2. 需要客戶端忽略掉個體構件和組合構件的區別??蛻舳吮仨毱降葘Υ械臉嫾▊€體構件和組合構件。
閱讀全文
『螞蟻學模式』之實例化缺省適配器(Default Adapter)模式
摘要: 缺省適配器模式:為一個接口提供缺省實現,這樣子類型可以從這個缺省實現進行擴展,而不必從原有接口進行擴展。
“平庸化”的適配器模式。
閱讀全文
『螞蟻學模式』之實例化適配器(Adapter)模式
摘要: 使用場合:
1)系統需要使用現有的類,而此類的接口不符合系統的需要。
2)想要建立一個可以重復使用的類,用于與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的類一起工作。這些源類不一定有很復雜的接口。
3)(對對象的適配器模式而言)在設計里,需要改變多個已有的子類的接口,如果使用類的適配器模式,就要針對每一個子類做一個適配器類,而這不太實際。
閱讀全文
『螞蟻學模式』之實例化原型模式
摘要: 用意:通過給出一個原型對象來指明所要創建的對象的類型,然后用復制這個原型對象的辦法創建出更多同類型的對象。
閱讀全文
『螞蟻學模式』之實例化建造者模式
摘要: 建造者模式可以將一個產品的內部表象與產品的生成過程分割開來,從而可以使一個建造過程生成具有不同的內部表象的產品對象。
閱讀全文
『螞蟻學模式』之實例化單例模式(二)
摘要: 前面說了單例模式,這次說說單例模式的推廣——多例模式。
閱讀全文
『螞蟻學模式』之實例化單例模式(一)
摘要: 單例模式在實際應用中已經逐步被Ioc容器替代,實用價值不高
閱讀全文
『螞蟻學模式』之實例化抽象工廠模式及碎言
摘要: 而這次,汽車廠(MotorFactory)有新的需求,不只要生產國產車(NativeMotor),還需要生產進口車(ForeignMotor)。這兩種車都包括公交(Bus)和小轎車(Car)。
閱讀全文
『螞蟻學模式』之實例化簡單工廠、工廠方法模式
摘要: 先看實例,很簡單。UML圖也懶得畫了,更喜歡CRC卡片的方式。
閱讀全文
『螞蟻學模式』之迪米特法則(LoD)
摘要: 一個對象應當對其他對象有盡可能少的了解。
11.1 迪米特法則的各種表述:
1)只與你直接的朋友們通信。
2)不要跟“陌生人”說話。
3)每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關的軟件單位。
閱讀全文
『螞蟻學模式』之合成/聚合復合原則(CARP)
摘要: 合成/聚合復用原則:在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分;新的對象通過向這些對象的委派達到復用已有功能的目的。
簡言之:要盡量使用合成/聚合,盡量不要使用繼承。
閱讀全文