設計模式的基本原則:
1)開放封閉原則(ocp, open for extension, closed for modification principle)
類的改動是通過增加**進行的,而不是修改源**。
2)單一職責原則(srp, single responsibility principle)
類的職責要單一,對外只提供一種功能,而引起類變化的原因都應該只有乙個。
3)依賴倒置原則(dip, dependence inversion principle)
依賴於抽象(介面), 不要依賴具體的實現(類),也就是針對介面程式設計。
4)介面隔離原則(isp, inte***ce segegation principle)
不應該強迫客戶的程式依賴他們不需要的介面方法。乙個介面應該只提供一種對外功能,不應該把所有操作都封裝到乙個介面中去。
5)黎克特制替換原則(lsp, liskov substitution principle)
任何抽象類出現的地方都可以用他的實現類進行替換。實際就是虛擬機制,語言級別實現物件導向功能。
6)優先使用組合而不是繼承原則(carp, composite / aggregate reuse principle)
如果使用繼承,會導致父類的任何變換都可能影響到子類的行為。
如果使用物件組合,就降低了這種依賴關係。
7) 迪公尺特法則(lod, law of demeter)
乙個物件應當對其他物件盡可能少的了解,從而降低各個物件之間的耦合,提高系統的可維護性。例如在乙個程式中,各個模組之間
相互呼叫時,通常會提供乙個統一的介面來實現。這樣其他模組不需要了解另外乙個模組的內部實現細節,這樣當乙個模組內部的實
現發生改變時,不會影響其他模組的使用。
類與類之間的關係:
1 泛化(應該也叫繼承吧)(generalization)
表示類與類之間的繼承關係,介面與介面之間的繼承關係,或類對介面的實現關係。一般畫的關係是從子類指向父類的。
2 依賴(dependency)(物件注入技術--將物件傳遞給含有物件指標引數的函式,那麼此函式遍可以控制此物件了)
物件之間的臨時關係,臨時性體現在不超越方法的週期。在方法使用到的,如引數類,就一定是依賴關係。
3 關聯(association)
關聯是通過例項來完成的,當乙個例項化的類作為了另乙個類的成員變臉。在此類中又呼叫了例項化類的成員函式,那麼這個
成員函式的類和這個類就是關聯關係
4 聚合(aggregation)
表示兩個物件之間是整體和部分的弱關係,部分的生命週期可以超越整體。如電腦和滑鼠、
5 組合(combination)
表示兩個物件之間是整體和部分的
強關係,部分的生命週期不能超越整體,在我看來就是將另乙個類作為成員變數,但是這個成員的變數的位置方式放在了建構函式裡面,所以體現出了他很強吧,我直接構造了。
總的來說,後幾種關係所表現的強弱程度依次為:組合》聚合》關聯》依賴。
設計模式的基本原則
做專案時用到了觀察者設計模式,回憶了一下,總結了一下幾點 1.把會變化的部分取出並封裝起來,以便以後可以輕易地擴充此部分,而不影響不需要變化的其他部分 2.針對介面程式設計,而不是針對實現程式設計。變數的宣告型別,應該是超型別,通常是乙個抽象類或者是乙個介面,如此,只要是具體實現此超型別的類所產生的...
設計模式的基本原則
設計模式的世界豐富多彩,比如生產乙個個 產品 的工廠模式,銜接兩個不相關介面的介面卡模式,用不同的方式做同一件事的策略模式,構建步驟穩定 根據構建過程的不同配置構建出不同物件的建造者模式等。物件導向結合設計模式,才能真正體會到程式變得可維護 可復用 可擴充套件 靈活性好。設計模式對於程式設計師而言並...
設計模式基本原則
設計模式基本原則 開 閉 原則 open closed principle,或者ocp 原文 software entities should be open for extension,but closed for modification.解釋 乙個軟體實體應當對擴充套件開放,對修改關閉。黎克特...