常見設計模式分析

2021-08-14 12:24:42 字數 1847 閱讀 9718

/**

* @author shenqi

* @date 2018/1/10.

*/* 單例模式

* 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。

* 單例模式 懶漢式

*/public class singleton

public static singleton getsingleton()

return singleton;}}

/*** 單例模式 雙重執行緒檢查模式

*/public class singleton

public static singleton getsingleton()}}

return singleton;}}

/*** 工廠方法模式

*///抽象產品角色

public inte***ce moveable

//具體產品角色

public class plane implements moveable

}//具體產品角色

public class car implements moveable

}//抽象工廠

public abstract class vehiclefactory

//具體工廠

public class planefactory extends vehiclefactory

}//具體工廠

public class ca***ctory extends vehiclefactory

}//測試

public class test

}/**

* 建造模式 builder

* 是一種物件構建的設計模式,它可以將複雜物件的建造過程抽象出來,使這個抽象過程的不同實現方法可以構造出不同表現(屬性)的物件。

*/public inte***ce builder

public class director

private void construct()

}public class concretebuilder implements builder

public void buildpartb

public void buildpartc

public product getresult()

}public inte***ce product{}

public inte***ce part{}

//呼叫builder模式

//concretebuilder builder = new concretebuilder();

//diretor diretor = new director(builder);

//product product = builder.getresult();

/*** 觀察者模式

* 該模式定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽同一主題物件,這個主題物件在狀態發生變化時,會通知會通知所有觀察者物件,使它們能夠自動更新自己。觀察者模式又叫發布-訂閱(publish/subscribe)模式。

*///先建立乙個subject類

public inte***ce subject

//建立observer類

public inte***ce observer

//建立concretesubject類

public class teacher implements subject

@override

public void attach(observer observer)

@override

public void notice(){

for(int i =0;i

常見設計模式

設計模式的目的 將易變的事物與不變的事物分開,隔離 中的更改。public class singleton6 public static singleton6 getinstance return instance 單例模式的幾種實現方式 餓漢式單例設計模式 public class runtime...

常見設計模式 裝飾模式

為物件動態新增功能。裝飾者 decorator 和具體元件 concretecomponent 都繼承自元件 component 具體元件的方法實現不需要依賴於其它物件,而裝飾者組合了乙個元件,這樣它可以裝飾其它裝飾者或者具體元件。所謂裝飾,就是把這個裝飾者套在被裝飾者之上,從而動態擴充套件被裝飾者...

常見設計模式 工廠模式

簡單工廠模式 定義 是指由乙個工廠物件決定建立出哪一種產品類的例項。目的是 解決 重複利用問題,減少冗餘。優點 只需要傳入乙個正確的引數,就可以獲取所需要的物件,無須知道其建立的細節。缺點 1 不易於擴充套件過於複雜的產品結構。2 工廠類的職責相對過重,增加新的產品時需要修改工廠類的判斷邏輯,違背開...