C#设计模式 之 工厂方法模式

C#设计模式 之 工厂方法模式

ID:40297737

大小:107.00 KB

页数:5页

时间:2019-07-30

C#设计模式 之 工厂方法模式_第1页
C#设计模式 之 工厂方法模式_第2页
C#设计模式 之 工厂方法模式_第3页
C#设计模式 之 工厂方法模式_第4页
C#设计模式 之 工厂方法模式_第5页
资源描述:

《C#设计模式 之 工厂方法模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、工厂方法模式(FactoryMethod)耦合关系:     动机(Motivation):   在软件系统中,由于需求的变化,"这个对象的具体实现"经常面临着剧烈的变化,但它却有比较稳定的接口。   如何应对这种变化呢?提供一种封装机制来隔离出"这个易变对象"的变化,从而保持系统中"其它依赖的对象"不随需求的变化而变化。意图(Intent):   定义一个用户创建对象的接口,让子类决定实例哪一个类。FactoryMethod使一个类的实例化延迟到子类。                                       

2、 ----------《设计模式》GOF结构图(Struct):           生活实例:       适用性:   1.当一个类不知道它所必须创建的对象类的时候。   2.当一个类希望由它子类来指定它所创建对象的时候。   3.当类将创建对象的职责委托给多个帮助子类中的某个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。实例代码:CarFactory类:1    public abstract class CarFactory2     {3        public abstract Car CarCreat

3、e();4     }Car类:1   public abstract class Car2     {3        public abstract void StartUp();4        public abstract void Run();5        public abstract void Stop();6       7     }HongQiCarFactory类:1   public class HongQiCarFactory:CarFactory2     {3        public ove

4、rride Car CarCreate()4        {5            return new HongQiCar();6        }7     }BMWCarFactory类:1   public class BMWCarFactory:CarFactory2     {3        public override Car CarCreate()4        {5            return new BMWCar();6        }7     }HongQiCar类: 1   publi

5、c  class HongQiCar:Car 2     { 3       public override void StartUp() 4       { 5           Console.WriteLine("Test HongQiCar start-up speed!"); 6       } 7       public override void Run() 8       { 9           Console.WriteLine("The HongQiCar run is very quickly!");

6、10       }11       public override void Stop()12       {13           Console.WriteLine("The slow stop time is 3 second ");14       }15     }BMWCar类: 1    public  class BMWCar:Car 2     { 3        public override void StartUp() 4        { 5            Console.WriteLine

7、("The BMWCar start-up speed is very quickly"); 6        } 7        public override void Run() 8        { 9            Console.WriteLine("The BMWCar run is quitely fast and safe!!!");10        }11        public override void Stop()12        {13            Console.Write

8、Line("The slow stop time is 2 second");14        }15     }app.config1 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。