namespace CNBlogs.DesignPattern.Common { 跑车 SportCar : AbstractCar { ; ; 重写基类的Type属性 Type { get { return type; } } 重写基类的Color属性 Color { get { return color; } } } 运动背包 SportBackpack : AbstractBackpack { ; ; 重写基类的Type属性 Type { get { return type; } } 重写基类的Color属性 Color { get { return color; } } } } //具体产品可以有很多很多, 至于越野类的具体产品这里就不列出来了。
创建装备代码:
namespace CNBlogs.DesignPattern.Common { public class CreateEquipment { private AbstractCar fanCar; private AbstractBackpack fanBackpack; public CreateEquipment(AbstractEquipment equipment) { fanCar = equipment.CreateCar(); fanBackpack = equipment.CreateBackpack(); } public void ReadyEquipment() { Console.WriteLine(, fanBackpack.Color, fanBackpack.Type, fanCar.Color, fanCar.Type )); } } }
客户端代码:
//------------------------------------------------------------------------------ // <copyright file="Program.cs" company="CNBlogs Corporation"> // Copyright (C) 2015-2016 All Rights Reserved 作 者: 请叫我头头哥 // </copyright> CNBlogs.DesignPattern { using System; using System.Configuration; using System.Reflection; using CNBlogs.DesignPattern.Common; class Program { static void Main(string[] args) { <add key="assemblyName" value="CNBlogs.DesignPattern.Common"/> //<add key="nameSpaceName" value="CNBlogs.DesignPattern.Common"/> //<add key="typename" value="SportEquipment"/> assemblyName = ConfigurationManager.AppSettings[]; ], , ConfigurationManager.AppSettings[]); AbstractEquipment factory = (AbstractEquipment)Assembly.Load(assemblyName).CreateInstance(fullTypeName); CreateEquipment equipment = new CreateEquipment(factory); equipment.ReadyEquipment(); Console.Read(); } } }
抽象工厂模式符合了六大原则中的开闭原则、里氏代换原则、依赖倒转原则等等
7.抽象工厂的优点/缺点:
v博客总结
这篇博文从晚上下班7点到家一直写到现在,说了一晚上的工厂,也扯了一晚上的速度与激情,在本博文完结的最后,给大家来一张速度与激情的画面精彩照。(ps:是不是觉得这种画面再配上一曲DJ一瓶啤酒会更嗨啊?哈哈...)
我们使用设计模式目的无非只有三个:a)缩短开发时间;b)降低维护成本;c)在应用程序之间和内部轻松集成。具体什么时候使用何种设计模式还得因项目而异。之所以对设计模式旧调重弹只是希望这个博文能对自己的架构之路有所提升,同时如果能帮助到其他人那就更完美了。
作 者:请叫我头头哥
出 处:
关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【】一下。您的鼓励是作者坚持原创和持续写作的最大动力!