上次讲解了简单工厂模式与工厂方法模式的区别,这次又学习了一种抽象工厂模式,我觉得也可以跟他们进行联系起来。这次就来讲解抽象工厂模式与他们的区别。
上次说了从简单工厂模式到工厂方法模式的转换,这次看一下从工厂方法模式到抽象工厂模式的过渡。
抽象工厂模式:提供一个创建一系列相关或想相互依赖对象的接口而无需制定它们具体的类。与方法工厂模式非常的相似,只不过方法工厂模式只是限于一个产品族,而抽象工厂方法模式涉及到多个产品族。
举例:工厂方法模式:有两家公司同时生产轿车,在这里“轿车”就是“抽象产品类”,具体的产品就是“现在,丰田”。工厂抽象接口就是“公司”,具体的工厂就是“现在汽车集团,丰田汽车公司”。代码结构:
代码显示:
//轿车类 public class Car { public virtual void Show() { Console.WriteLine(" "); }
//具体轿车类 class XiandaiCar:Car { public override void Show() { Console.WriteLine("在现在汽车集团制造现代牌轿车 "); } } class FengtianCar : Car { public override void Show() { Console.WriteLine("在丰田汽车公司制造丰田牌轿车 "); } }
//公司接口 interface Company { Car CreateCar(); }
//公司接口 interface Company { Car CreateCar(); }
//公司接口 interface Company { Car CreateCar(); } //现代汽车公司工厂 class XiandaiCompanyFactory:Company { public Car CreateCar() { return new XiandaiCar(); } } //丰田汽车公司工厂 class FengtianCompanyFactory:Company { public Car CreateCar() { return new FengtianCar(); } }
//公司接口 interface Company { Car CreateCar(); } //现代汽车公司工厂 class XiandaiCompanyFactory:Company { public Car CreateCar() { return new XiandaiCar(); } } //丰田汽车公司工厂 class FengtianCompanyFactory:Company { public Car CreateCar() { return new FengtianCar(); } }
//公司接口 interface Company { Car CreateCar(); } //现代汽车公司工厂 class XiandaiCompanyFactory:Company { public Car CreateCar() { return new XiandaiCar(); } } //丰田汽车公司工厂 class FengtianCompanyFactory:Company { public Car CreateCar() { return new FengtianCar(); } }
原文:http://blog.csdn.net/u010539352/article/details/21972551