設計模式真香筆記 工廠模式

2021-08-29 10:25:24 字數 3099 閱讀 1093

工廠模式:是為了將物件的建立和呼叫者分開,實現解耦,也就是將繁瑣的物件的建立由工廠來實現。

簡單工廠也叫靜態工廠,通過簡單工廠類的靜態方法傳入不同的引數來返回不同的所需要的物件。

缺點:雖然工廠不需要建立例項來呼叫方法,但是不同通過繼承來改變建立方法的行為。

新增加的物件 需要修改工廠類的**來實現。

**實現

public

abstract

class

pizza

public

class

baolezipizza

extends

pizza

}

public

class

hualaishipizza

extends

pizza

}

public

class

******pizzafactory

else

if(type.

equals

("hualaishi"))

else

return pizza;

}}

public

class

******pizzatest

}

工廠方法模式:定義乙個建立物件的藉口,由子類決定要例項化哪乙個類,工廠方法把例項化推遲到子類。

優缺點:工廠方法模式更加符合開閉原則,但是每次擴充套件會增加新的類

設計原則

依賴倒轉原則:要依賴抽象,不要依賴具體類。

依賴倒轉原則的指導方針(盡量達到,而不是必須遵守)

public

abstract

class

pizaa

}void

bake()

void

cut(

)void

box(

)public string getname()

}

public

class

baolezimalapizza

extends

pizaa

}

public

class

baolezizhishipizza

extends

pizaa

}

public

class

hualaishimalapizza

extends

pizaa

}

public

class

hualaishizhishipizza

extends

pizaa

}

public

abstract

class

pizzastore

protected

abstract pizaa createpizza

(string type)

;//這就是 工廠方法由子類實現

}

public

class

baolezipizzastore

extends

pizzastore

else

if(type.

equals

("zhishi"))

else

}}

public

class

hualaishipizzastore

extends

pizzastore

else

if(type.

equals

("zhishi"))

else

}}

public

class

pizzatest

}

**實現:

public

inte***ce

pizza

class

expensivepizza

implements

pizza

}class

implements

pizza

}

public

inte***ce

souce

class

expensivesouce

implements

souce

}class

cheapsouce

implements

souce

}

public

inte***ce

abstractpizzafactory

public

class

expensivefactory

implements

abstractpizzafactory

@override

public souce createsouce()

}

public

class

cheapfactory

implements

abstractpizzafactory

@override

public souce createsouce()

}

public

class

abstractpizzatest

}

測試結果

設計模式筆記 工廠模式

工廠模式主要是為建立物件提供過度介面,以便將建立物件的具體過程隔離,從而達到提高靈活性的目的 分類一 簡單工廠模式,工廠方法模式,抽象工廠模式 逐步抽象 分類二 工廠方法模式 包括簡單工廠模式 抽象工廠模式 1.簡單工廠模式又稱靜態工廠方法模式,存在目的 定義乙個用於建立物件的介面。組成 工廠類角色...

設計模式學習筆記(工廠模式)

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠模式使乙個類的例項化延遲到其子類。c 中的工廠方法 工廠基類中所定義的建立產品的函式 都是虛函式並且常常是純虛函式。product 工廠基類 定義工廠方法所建立的介面 concreteproduct 工廠具體類 實現product介面 cre...

設計模式學習筆記 工廠模式

簡單工廠 將建立類的 剝離出來,放到乙個類裡面,通過例項化這個類去獲取想要的物件。先將多個類的物件儲存到map裡,然後通過get方法從裡面獲取 工廠方法 基於介面去實現多個不同的方法,類繼承自介面,然後重寫方法 類裡面再建立乙個靜態類,靜態類裡從父類獲取對應的方法的邏輯,父類裡時多種不同的實現。抽象...