是在特定環境下人們解決某類重複出現額問題的一套成功的有效的方案
四人組(gang of four) 將"模式"的概念引入軟體工程
「在一定的環境下,用固定套路解決問題」
設計模式的基礎是:多型
設計模式的原則是:高內聚 ,低耦合(各個類之間少參與,保持模組性)
單一職責原則:類的職責單一,對外只提供一種功能,引起變化的原因也只有乙個.
開閉原則:類的改動是通過增加**而進行的,而不是修改原始碼.
迪公尺特法則:乙個物件應當對其他物件盡可能的少了解,從而降低各個物件之間的耦合,提高系統的可維護性.符合設計模式的基本原則(多組合,少繼承).
黎克特制代換原則:任何抽象類出現的地方都可以用他的實現類代替,實際就是虛擬機制,語言級別實現物件導向功能.
依賴倒轉原則:依賴於抽象介面,不要依賴於具體的實現類,也就是針對介面程式設計.
簡單工廠的優點
1.實現了物件建立和使用的分離
2.不用記住類名,只需記住引數,減少了記憶量
簡單工廠的缺點
1.對工廠類負擔過重
2.複雜度增加
3.違反了工廠的原則
簡單工廠步驟
1.先建立乙個抽象工廠類
2.在抽象工廠類裡面寫乙個抽象方法
3.建立乙個普通類
4.在普通類中重寫抽象方法
工廠方法:是乙個產品乙個廠
優點是1.不需要記住具體類名,甚至連具體引數都不用記憶
2.實現了物件建立和使用的分離
3.系統的可拓展性也就變得風場好,無需修改介面和原類
缺點是1.增加系統中類的個數,複雜度和理解度增加
2.增加了系統的抽象性和理解難度
第一步建立乙個抽象工廠類
namespace 工廠方法
}
第二步建立乙個抽象手機類
namespace 工廠方法
}
第三步建立乙個實現手機類
namespace 工廠方法
}}
第四步建立乙個實現手機工廠類
namespace 工廠方法
}}
第五步建立乙個主類
namespace 工廠方法
}}
分為懶漢模式和餓漢模式懶漢模式指的是需要用了的時候在建立 (if == null)就建立
懶漢模式適用於執行緒比較少的場景,因為執行緒一旦多,加鎖的開銷就會體現出來(當然最後對懶漢優化的那種方案已經差不多解決這個問題了),總之它是一種時間換空間的模式。
餓漢模式指的是不論之前有沒有直接建立
餓漢模式適用於執行緒比較多的場景,它會占用全域性靜態區一定的空間,但是能夠確保只有乙個例項。但是當執行緒很少,甚至是沒有用到這個單例類的時候,就顯得得不償失了,它占用的空間問題就體現出來了,這是一種空間換時間的模式。
子類與父類,
public class a public virtual void testm2 public class b a public new void testm2 很多時候子類override是為了基類使用時可以有靈活的構造配置,多型 使用方總是基類物件所以如果子類有它自己的成員 包括new的成員函...
父類,子類,匿名類建構函式
1 子類只繼承父類的預設 預設 建構函式,即無形參建構函式。如果父類沒有預設建構函式,那子類不能從父類繼承到任何建構函式。2 子類從父類處繼承來的父類預設建構函式,不能成為子類的預設建構函式。3 在建立物件時,先呼叫父類預設建構函式對物件進行初始化,然後呼叫子類自身自己定義的建構函式。4 如果子類想...
父類引用子類物件
父類引用子類物件 package test class fruit1 string get1 父類引用子類物件 如果父類的方法可以被重寫 靜態方法不能被重寫,因為它是隨著類的建立而存在於記憶體,只有乙份 並且已經重寫,那麼呼叫的是子類的方法 反之,則呼叫父類裡的方法 public class fru...