設計模式(design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結。使用設計模式是為了可重用**、讓**更容易被他人理解、保證**可靠性。
總體來說設計模式分為三大類:
建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。
解釋一下模板方法模式,就是指:乙個抽象類中,有乙個主方法,再定義1…n個方法,可以是抽象的,也可以是實際的方法,定義乙個類,繼承該抽象類,重寫抽象方法,通過呼叫抽象類,實現對子類的呼叫
新建繼承類,繼承類可以通過呼叫抽象類的主方法來掉用繼承類重寫的方法和公共方法
使用場景: 多個繼承類之間的呼叫邏輯一樣但是具體業務邏輯不同
類的介面卡模式:當希望將乙個類轉換成滿足另乙個新介面的類時,可以使用類的介面卡模式,建立乙個新類,繼承原有的類,實現新的介面即可。
public class source public inte***ce targetable
private source source;
//不一定是要呼叫source的方法,也可以是需要source的一些屬性(呼叫get或者set方法)
// 有參構造方法
super();
this.source = source;
}@override
public void method2()
@override
public void method1()
介面卡模式總結:介面卡模式可以繼承到source中的所有方法,並且可以增加自己想要的方法(三個適配模式中都有這個功能,視情況使用哪個)(開閉原則?對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的**,實現乙個熱插拔的效果。)
參考:
設計模式練習
老師1 老師2 2個工廠模式 培訓成績記入工作業績,使用觀察者模式 inte ce teach class teacher1 implements teach public function teachstudent class teacher2 implements teach public fu...
設計模式 狀態模式練習
某紙牌遊戲軟體中,人物角色具有人門級 primary 熟練級 secondary 高手紹 professional 和骨灰級 final 四種等級,角色的等級與其積分相對應,遊戲勝利將增加和分,失敗則扣除積分。人門級具有最基本的遊戲功能 play 熟練級增加丁遊戲勝利積分加倍功能doublescor...
模板方法設計模式練習
需求 獲取一段程式執行的時間 原理 獲取程式開始和結束的時間並相減即可。當 完成優化後,就可以解決這類問題,這種方式,模板方法設計模式。模板方法設計模式 在定義功能時,功能的一部分是確定的,一部分是不確定德爾,而確定的部分在使用不確定的部分,那麼這時就將不確定的部分暴露出去,由該類的子類去完成 ab...