Java幾種設計模式

2021-08-14 02:44:39 字數 2629 閱讀 5336

建立型模式 物件的建立

結構型模式 物件的組成

行為型模式 物件的行為 

該模式裡面需要提供乙個類:工廠類(用它製造一些需要的物件)

特點:構造方法私有化,外界不能直接建立它的物件

提供靜態功能,每一種靜態都會產生所需要的物件...

缺點:不利於後期維護

如果新增新的物件,需要建立它的類還需要在靜態工廠類提供一些功能!

定義乙個動物抽象類:

public abstract class animal
定義兩個動物具體類,繼承動物抽象類,重寫裡面的eat()方法

public class cat extends animal 

}

public class dog extends animal 

}

再建立乙個動物工廠類,提供貓和狗這兩種動物

public class animalfactory 

//提供貓和狗這兩種動物

public static animal createanimal(string type) else if("cat".equals(type))else

}}

測試類:

public class animaldemo else 

}}

工廠方法模式:

特點:需要提供乙個抽象類,以及每個動物的具體類和介面(工廠介面)

該介面中的抽象方法的返回值是該抽象類

針對每個具體動物都提供一些對應的工廠類--->實現該介面--->返回值就是需要具體的動物物件

弊端:**量大.

定義乙個動物抽象類:

public abstract class animal
定義兩個動物具體類,繼承動物抽象類,重寫裡面的eat()方法

public class cat extends animal 

}

public class dog extends animal 

}

定義工廠類介面

public inte***ce factory

分別定義cat和dog的工廠類,實現工廠介面

public class catfactory implements factory 

}

public class dogfactory implements factory 

}

測試類

public class animaldemo 

}

定義:在記憶體中始終只有乙個物件

餓漢式特點:當前某乙個一載入,就會建立乙個物件

需要將該類的無參構造私有化

在成員變數建立該類的例項

需要提供公共的訪問方法(實際開發中使用這種方式)

懶漢式特點:並不是載入某個類就直接建立物件,而是需要的時候在建立物件

1)懶載入(延遲載入)

2)執行緒的安全問題

執行緒安全問題檢驗標準:

a:是否是多執行緒環境

b:是否有共享資料

c:是否有多條語句對共享資料進行操作!

使用同步**塊或同步方法(synchronized)進行解決

餓漢式:

public class student 

//在成員變數的位置建立該類的例項

//靜態只能訪問靜態,所以需要加上靜態修飾

//為了不讓外界修改當前這個例項,所以加入private修飾

private static student s = new student();

public static student getstudent()

public class studentdemo 

}

懶漢式:

public class teacher 

//在成員變數位置宣告變數

private static teacher t = null ; //共享資料

//提供公共的方法訪問

public synchronized static teacher getteacher()

return t ;

}}

public class teacherdemo 

}

面試題:簡單闡述下單例模式有幾種,並且寫出乙個單例模式**!(寫懶漢式),

就想問你能否想到懶漢式中多執行緒的安全問題...

如果是開發中,使用單例模式,那麼使用的   --->餓漢式(不會出現問題的單例模式)

如果是面試中,使用單例模式,----->懶漢式(想問你能否想到懶漢式中多執行緒的安全問題以及解決辦法)

php幾種設計模式

class signle return static instance public function test class observer 執行觀察者 public function observer type public function create 呼叫 ob new observer ...

java設計模式

a categorization of patterns by intent intent patterns inte ces adapter,facade,composite,bridge responsibility singleton,observer,mediator,proxy,chain...

JAVA設計模式

設計模式 設計模式分類 設計模式分為三類,建立型模式,結構型模式,行為型模式 建立型模式 1 工廠方法模式 2 抽象工廠模式 3 單例模式 4 建造者模式 5 原型模式 結構型模式 1 介面卡模式 2 裝飾器模式 3 模式 4 外觀模式 5 橋接模式 6 組合模式 7 享元模式 行為型模式 1 策略...