常見設計模式

2021-10-24 20:01:22 字數 3398 閱讀 5621

設計模式的目的:將易變的事物與不變的事物分開,隔離**中的更改。

/**

*/public

class

singleton6

public

static singleton6 getinstance()

}}return instance;

}}

單例模式的幾種實現方式

//餓漢式單例設計模式

public

class

runtime

private

runtime()

//...

建立型模式優點:

工廠模式優點:

**實現

//簡單工廠模式

// 抽象產品類

abstract

class

car// 具體實現類

class

benz

implements

carpublic

void

stop()

}class

ford

implements

carpublic

void

stop()

}// 工廠類

class

factoryif(

"ford"

.equals

(type)

)return c;}}

public

class

test

else

}}

//工廠模式

// 抽象產品角色

public

inte***ce

moveable

// 具體產品角色

public

class

plane

implements

moveable

}public

class

broom

implements

moveable

}// 抽象工廠

public

abstract

class

vehiclefactory

// 具體工廠

public

class

planefactory

extends

vehiclefactory

}public

class

broomfactory

extends

vehiclefactory

}// 測試類

public

class

test

}

//抽象工廠類

public

abstract

class

abstractfactory

//具體工廠類,其中food,vehicle,weapon是抽象類,

public

class

defaultfactory

extends

abstractfactory

@override

public vehicle createvehicle()

@override

public weapon createweapon()

}//測試類

public

class

test

}

**參考

參考文章1

參考文章2

**演示

建立介面

public

inte***ce

strategy

建立介面實現類

//定義實現介面的不同類

//多種實現方式

//實現類一

public

class

operationadd

implements

strategy

}//實現類二

public

class

operationsubstract

implements

strategy

}

建立 context 類

//策略執行

public

class

context

public

intexecutestrategy

(int num1,

int num2)

}

測試

//使用 context 來檢視當它改變策略時 strategy時的行為變化

public

class

strategypatterndemo

//執行結果

//10 + 5 = 15

//10 - 5 = 5

案例

場景

為了實現上述場景,我們可以採用責任鏈設計模式:案例及參考** 缺點

應用場景總結

public

inte***ce

person

public

class

laowang

implements

person

@override

public

void

getmessage

(string s)

}public

class

laoli

implements

person

@override

public

void

getmessage

(string s)

}

public

class

xiaomei

public

void

addperson

(person person)

//遍歷list,把自己的通知傳送給所有暗戀自己的人

public

void

notifyperson()

}}

public

class

test

}

常見設計模式 裝飾模式

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

常見設計模式 工廠模式

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

10 常見設計模式

單例模式 保證類在記憶體中 只有乙個物件 1.餓漢式 1.私有建構函式 private xx 2.自己建立私有本類物件 private static xx new xx 3.對外提供公共訪問方法 public void getxx 2.懶漢式 延時載入 與餓漢的區別在於,物件的建立,只是宣告,1.私...