經(jīng)常對(duì)那三種工廠模式濫用,卻有時(shí)候又忘了叫什么
簡(jiǎn)單工廠 工廠方法 抽象方法模式。
創(chuàng)建模式可分為:簡(jiǎn)單工廠 工廠方法 抽象方法模式 單例模式 多例模式 建造者模式 原型模式
創(chuàng)建模式又分為:類的創(chuàng)建模式和對(duì)象的創(chuàng)建模式:即通過(guò)類繼承和對(duì)象委托方式
三種工廠示意圖:
比.jpg)
原型模式滿足三點(diǎn):
1,克隆對(duì)象與原有對(duì)象不同
2,克隆對(duì)象與原有對(duì)象的getClass()方法相同,即需要相同的類型
3,equals方法克隆對(duì)象與原有對(duì)象相同
前兩條充要條件,第3條必要條件
克隆分為:深克隆,淺克隆
深克?。簭?fù)制基本變量以及引用所指向的堆對(duì)象
淺克?。褐粡?fù)制基本變量及引用,引用仍然指向同一個(gè)堆對(duì)象。
深克隆要考慮:克隆的深度,即引用對(duì)象是否還包括引用。
示意圖:

單例模式:
/**線程安全**/
private static A a = new A();
private A(){}
public A getInstance(){
return a;
}
/**非線程安全 可改造成線程安全*/
private A a ;
private A(){}
public A getInstance(){
if(a ==null){
a = new A();
}
return a;
}
示意圖: