抽象工厂设计模式
2011-08-17 11:17
274 查看
抽象工厂设计模式
Client Invoke
Class Demo
Client Invoke
protected void btnAbstract_Click(object sender, EventArgs e) { AbstractRoadFactory roadfactory ; roadfactory = new RoadFactory1(); client c1 ; c1 = new client(roadfactory); lblMessage.Text += c1.Run() + "--"; roadfactory = new RoadFactory2(); c1 = new client(roadfactory); lblMessage.Text += c1.Run() + "--"; }
Class Demo
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; /// <summary> /// Summary description for AbstractClass /// </summary> public abstract class AbstractRoadFactory { public AbstractRoadFactory() { // // TODO: Add constructor logic here // } public abstract AbstractWhiteRoad CreateWhiteRoad(); public abstract AbstractBlackRoad CreateBlackRoad(); } public class RoadFactory1 : AbstractRoadFactory { public override AbstractWhiteRoad CreateWhiteRoad() { return new WhiteRoad1(); } public override AbstractBlackRoad CreateBlackRoad() { return new BlackRoad1(); } } public class RoadFactory2 : AbstractRoadFactory { public override AbstractWhiteRoad CreateWhiteRoad() { return new WhiteRoad2(); } public override AbstractBlackRoad CreateBlackRoad() { return new BlackRoad2(); } } public abstract class AbstractWhiteRoad { } public abstract class AbstractBlackRoad { public abstract string Run(); } public class WhiteRoad1 : AbstractWhiteRoad { } public class BlackRoad1 : AbstractBlackRoad { public override string Run() { return "test black road1!"; } } public class WhiteRoad2 : AbstractWhiteRoad { } public class BlackRoad2 : AbstractBlackRoad { public override string Run() { return "test black road2!"; } } public class client { private AbstractWhiteRoad AbstractWhiteRoad; private AbstractBlackRoad AbstractBlackRoad; public client(AbstractRoadFactory factory) { AbstractWhiteRoad = factory.CreateWhiteRoad(); AbstractBlackRoad = factory.CreateBlackRoad(); } public string Run() { return AbstractBlackRoad.Run(); } }
相关文章推荐
- 抽象工厂设计模式(C#)
- 设计模式 -- 抽象工厂
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 (转)
- 设计模式学习笔记(4)抽象工厂
- java设计模式_抽象工厂
- 跟着实例学习设计模式(5)-工厂方法 、抽象工厂的差别
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 【读书笔记-重构与模式】设计模式之简单工厂模式、工厂模式、抽象工厂
- JAVA设计模式之二抽象工厂
- 设计模式一(工厂方法、抽象工厂、单例)
- Java设计模式之抽象工厂
- 【转】设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- C++设计模式之简单工厂、工厂模式、抽象工厂
- 设计模式(2) - 抽象工厂
- 一起来学设计模式-----创建型模式之抽象工厂
- 抽象工厂设计模式(Abstract Factory Design Pattern)简单随笔
- 设计模式之简单工厂、工厂方法、抽象工厂
- 设计模式笔记--创建型模式之一 抽象工厂
- 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)