工廠方法用來出來物件的建立,並將這樣的行為封裝在子類中。這樣,客戶程式中關於超類的**和子類物件物件的建立**解耦了。
工廠方法模式定義了乙個建立物件的介面,但有子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類。
把產品和工廠分隔開,都是針對產品介面進行程式設計。
我們舉個例子,使用工廠建立汽車。
首先建立乙個汽車產品介面
然後建立具體的汽車產品public inte***ce car
然後建立產品工廠超類,裡面定義具體對產品的操作行為public class qiya : car
public void makecar()
}public class xiandai : car
public void makecar()
}
定義具體的產品工廠public abstract class usecar
}
測試public class qiyafactory:usecar
}public class xiandaifcatory : usecar
}
輸出usecar usecar = new qiyafactory();
usecar.use();
usecar = new xiandaifcatory();
usecar.use();
如果我們再要建立乙個豐田汽車產品和工廠的話,需要增加兩個地方製作起亞汽車
開起亞汽車
製造現代汽車
開現代汽車
如果使用的話,也需要同步初始這個工廠public class toyto : car
public void makecar()
}public class toytofactory : usecar
}
可以看出,使用工廠方法建立的類,是比較繁瑣的。static void main(string args)
設計模式 簡單工廠 工廠方法 抽象工廠方法模式
簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...
設計模式 工廠方法
設計模式 工廠方法 工廠方法與抽象方法 面向介面程式設計可以提高 的靈活性 可以橫向擴充 切忌不能使用面向實現的程式設計,這樣做不便於以後業務的擴充和 的靈活性。工廠方法 就是把 new class 的過程交給 factory來做.構造類的細節不需要我們知道。比如 構造乙個 list 我們可以這樣寫...
設計模式 工廠方法
簡單工廠針對擴充套件時需要修改 違反了ocp 開閉原則 而工廠方法模式在擴充套件時,更滿足ocp。當然比較簡單工廠模式,工廠方法模式有一組實現了相同介面的工廠類,而簡單工廠模式就只有乙個工廠類。和簡單工廠方法一樣,還是以生成汽車為例子。定義要生成的物件的公共介面 public inte ce car...