简单工厂模式(Simple Factory Method Pattern)
2017-05-06 12:54
330 查看
图示原理
【注释】从图中可以看出,客户是与工厂打交道的,指示工厂生产某类产品,然后工厂生产出产品,客户统一以父类产品类对象的形式得到,从而使客户与具体产品的创建毫不相关。
各类解释
工厂类:担任这个角色的是工厂方法模式的核心。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体的类实现。
抽象产品角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或她们共同拥有的接口。一般由接口或抽象类实现。
具体产品角色:工厂方法模式所创建的任何对象都是这个角色的实例,由具体类实现。
范例
效果图
简单工厂模式的优缺点
优点:
1.模式的核心是工厂类,这个类负责产品的创建,而客户端可以免去产品创建的责任,这实现了责任的分割。
2.客户只需指示工厂创建哪个对象。
缺点:
1.由于工厂类集中了所有产品创建逻辑,如果不能正常工作的话会对系统造成很大的影响。如果增加新产品必须修改工厂角色的源码。 总之,就是关键部分的代码最好不轻易随需求产生变更,而简单工厂模式并没有做到这一点,所以抽象工厂模式(Abstract Factory Method Pattern)产生了-^^-。
【注释】从图中可以看出,客户是与工厂打交道的,指示工厂生产某类产品,然后工厂生产出产品,客户统一以父类产品类对象的形式得到,从而使客户与具体产品的创建毫不相关。
各类解释
工厂类:担任这个角色的是工厂方法模式的核心。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体的类实现。
抽象产品角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或她们共同拥有的接口。一般由接口或抽象类实现。
具体产品角色:工厂方法模式所创建的任何对象都是这个角色的实例,由具体类实现。
范例
namespace ConsoleApplicationDemo { public interface IApparel { string ShowMe(); } public class ApparelFactory { public IApparel CreateApparel(string apptype) { switch (apptype) { case "DRESSSHIRT": return new DressShirt(); case "SPORTSSHIRT": return new SportShirt(); } return null; } } public class DressShirt : IApparel { public string ShowMe() { return ("Dress Shirt"); } } public class SportShirt : IApparel { public string ShowMe() { return ("Sports Shirt"); } } class Program { static void Main(string[] args) { //生成工厂对象 ApparelFactory factory = new ApparelFactory(); //客户直接给工厂指示,生成想要的产品,以统一的父类产品形式提取 IApparel obj1 = factory.CreateApparel("DRESSSHIRT"); IApparel obj2 = factory.CreateApparel("SPORTSSHIRT"); string shirtType = obj1.ShowMe(); Console.WriteLine(shirtType); } } }
效果图
简单工厂模式的优缺点
优点:
1.模式的核心是工厂类,这个类负责产品的创建,而客户端可以免去产品创建的责任,这实现了责任的分割。
2.客户只需指示工厂创建哪个对象。
缺点:
1.由于工厂类集中了所有产品创建逻辑,如果不能正常工作的话会对系统造成很大的影响。如果增加新产品必须修改工厂角色的源码。 总之,就是关键部分的代码最好不轻易随需求产生变更,而简单工厂模式并没有做到这一点,所以抽象工厂模式(Abstract Factory Method Pattern)产生了-^^-。
相关文章推荐
- Java 简单工厂模式(Simple Factory Pattern)又叫静态工厂方法模式(Static FactoryMethod Pattern)
- 简单工厂模式 (Simple Factory Pattern) / 静态工厂方法(Static Factory Method)模式
- 设计模式系列(四)简单工厂模式(Simple Factory Pattern/Static Factory Method)
- 简单工厂模式(Simple Factory Pattern(静态工厂方法模式)对象创建型模式)
- 简单工厂模式(SimpleFactory Pattern)
- Net设计模式之简单工厂模式(Simple Factory Pattern) 推荐
- 简单工厂模式(Simple Factory Pattern)学习
- 设计模式(二)简单工厂模式(Simple Factory Pattern)
- Net设计模式实例之简单工厂模式(Simple Factory Pattern)
- 工厂模式―简单工厂模式(Simple Factory Pattern)
- 设计模式笔记之工厂模式--简单工厂模式(Simple Factory Pattern)
- 解读设计模式----简单工厂模式(SimpleFactory Pattern),你要什么我就给你什么
- 解读设计模式----简单工厂模式(SimpleFactory Pattern),你要什么我就给你什么
- 简单工厂模式(SimpleFactory Pattern)
- 工厂模式—简单工厂模式(Simple Factory Pattern)
- 简单工厂模式 Simple Factory Pattern
- 设计模式学习笔记一:Simple factory pattern,简单工厂模式
- 设计模式——简单工厂模式(SimpleFactory Pattern)
- 简单工厂模式(SimpleFactoryPattern)对比工厂方法模式(FactoryMethodPattern)分析
- 三.创建型设计模式——Simple Factory Pattern(简单工厂模式)