首页 > 代码库 > 【2016-10-17】【坚持学习】【Day8】【抽象工厂模式】
【2016-10-17】【坚持学习】【Day8】【抽象工厂模式】
定义:
提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。
结构:
抽象工厂类
具体工厂类
抽象产品类
具体产品类
例子:
代码:
interface SkinFactory { Button CreateButton(); TextField CreateTextField(); ComboBox CreateComboBox(); }
class SummerSkinFactory : SkinFactory { public Button CreateButton() { return new SummerButton(); } public TextField CreateTextField() { return new SummerTextField(); } public ComboBox CreateComboBox() { return new SummerComboBox(); } }
interface Button { void Display(); } interface ComboBox { void Display(); } interface TextField { void Display(); }
class SummerButton : Button { public void Display() { Console.WriteLine("显示浅蓝色按钮。"); } } class SummerComboBox : ComboBox { public void Display() { Console.WriteLine("显示蓝色边框组合框。"); } } class SummerTextField : TextField { public void Display() { Console.WriteLine("显示蓝色边框文本框。"); } }
运行
//使用抽象层定义 SkinFactory factory; Button bt; TextField tf; ComboBox cb; //读取配置文件 string factoryType = ConfigurationManager.AppSettings["factory"]; //反射生成对象 factory = (SkinFactory)Assembly.Load("AbstractFactorySample").CreateInstance(factoryType); bt = factory.CreateButton(); tf = factory.CreateTextField(); cb = factory.CreateComboBox(); bt.Display(); tf.Display(); cb.Display();
【2016-10-17】【坚持学习】【Day8】【抽象工厂模式】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。