在介紹工廠方法模式之前,先來介紹一下簡單工廠。
什麼是簡單工廠?
在類中,難免要例項化一些類,那麼我們把這些類的例項化抽離出來封裝成乙個工廠類,工廠類提供乙個公共的靜態或非靜態的方法來返回其他物件所需要的物件。這樣做的目的就是將物件的例項化與邏輯**分開,提高**的復用能力。這就是簡單工廠。
public abstract class clothes
public class shirts extends clothes
@override
public void sale()
}public class shoes extends clothes
@override
public void sale()
}public class factory
}public class clothesstore
}
請注意,簡單工廠不是設計模式,只是一種程式設計習慣。
接下來介紹一下工廠方法模式。
工廠方法模式的正式定義:定義了乙個建立物件的介面,但是由子類決定要例項化的類是哪個,工廠方法讓類把例項化推遲到了子類。
當clothesstore分為老年,中年,青年不同年齡段時,需要對clothesstore我們做一下修改,
uml圖如下。
public abstract class clothesstore
public abstract clothes create(string type);
}
銷售老年服裝的商店,可以從clothesstore繼承,
public class oldcolthesstore extends clothesstore
}
相同的方法,可以實現中年,青年服裝店。這樣就將物件的例項化推遲到子類,成功的將客戶從具體型別中解耦。
該模式所遵循的oo設計原則:
1、依賴倒置原則,依賴抽象,不依賴具體;
2、對擴充套件開放,對修改關閉。
設計模式 工廠模式之工廠方法模式
工廠方法模式是指定義乙個建立物件的介面,然後實現這個介面的工廠來決定建立什麼樣的例項。工廠方法讓類的例項推遲到子類中進行。在這個模式中,只關心需要建立的是什麼工廠,不需要關心建立的細節。而且新加入的產品符合開閉原則。1 建立支付介面,裡面定義抽象的支付方法。package com.gupao.vip...
設計模式之工廠方法模式
package com.csair.design.pattern 工廠方法,有抽象基類,每個子類生產乙個具體物件,與抽象工廠的關係是,抽象工廠生產多個產品 產品有某種內在聯絡 工廠方法只生產乙個物件 author ppt public class factorymethod public stati...
設計模式之工廠方法模式
下面定義乙個抽象類,這個類中有乙個具體方法 mymethod 和乙個抽象方法 abstractmethod 具體方法呼叫了抽象方法。public abstract class abstractclass protected abstract string abstractmethod 具體方法呼叫了...