(C#)工厂方法模式
2015-08-05 10:31
435 查看
1.工厂方法模式
第一了一个用于创建对象的接口,让子类自己决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
*工厂方法模式即克服了简单工厂模式违反开放-封闭原则的缺点,又保留了封装对象创建过程的优点。
2.实例
第一了一个用于创建对象的接口,让子类自己决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
*工厂方法模式即克服了简单工厂模式违反开放-封闭原则的缺点,又保留了封装对象创建过程的优点。
2.实例
namespace 工厂方法模式 { class Program { static void Main(string[] args) { IFactory factory = new CUnderGraduate(); Leifeng student = factory.CreateLeiFeng(); student.Sweep(); student.Wash(); student.BuyRice(); Console.ReadLine(); } } /// <summary> /// 所有工厂中公共执行的操作的类 /// </summary> class Leifeng { public void Sweep() { Console.WriteLine("扫地"); } public void Wash() { Console.WriteLine("洗衣"); } public void BuyRice() { Console.WriteLine("买米"); } } /// <summary> /// 创建工厂接口 /// </summary> interface IFactory { Leifeng CreateLeiFeng(); } /// <summary> /// 工厂需要实例化的类 /// </summary> class UnderGraduate : Leifeng {} /// <summary> /// 工厂需要实例化的类 /// </summary> class Voluteers:Leifeng { } /// <summary> /// 工厂,用来实例化类 /// </summary> class CUnderGraduate:IFactory { public Leifeng CreateLeiFeng() { return new UnderGraduate(); } } /// <summary> /// 工厂,用来实例化类 /// </summary> class CVoluteers : IFactory { public Leifeng CreateLeiFeng() { return new Voluteers(); } } }
相关文章推荐
- C#进制转换
- C#中将字符串转换成日期的方式
- C#多线程问题整合
- C#(WPF)中使用WinAPI函数进行截屏
- C#(WPF)中使用WinAPI函数进行截屏
- C# 重写WndProc 拦截 发送 系统消息
- 【转】C# 的Brush 及相关颜色的操作
- C#读取及写入配置文件教程
- C#多线程介绍(下)
- 编写高质量代码改善C#程序的157个建议
- Leap Motion的环境配置(使用c#)
- C#中[],List,Array,ArrayList的区别于应用
- C# 遍历文件夹及其子文件夹来查找某个文件
- C#编程:读二进制文件的优化
- c#多线程介绍(上)
- c# -- 对象销毁和垃圾回收
- c# 可反复打开word2003,word2007文档方法,可直接使用
- VS2015 C#6.0 中的没有实现/支持的特性
- C# string Spilt
- VS2015 C#6.0 中的那些新特性