设计模式(2)工厂模式、工厂方法模式、抽象工厂模式
2017-07-11 13:49
330 查看
工厂模式
一个工厂可以生产不同型号的产品,客户需告诉工厂需要什么型号的产品
代码:
简单工厂违背了开放封闭原则,在新增功能时,需要修改工厂,这样不是一个好事情。工厂方法模式解决了这个问题。
工厂方法模式
有多个工厂,每个工厂生产一种型号的产品,客户需到不同工厂
方法类与上面一致,将原有的一个工厂拆分成多个工厂,有多少个产品就有多少个工厂
代码:
在工厂方法中出现一个问题,一个工厂只能生产一个产品,但是我们经常是要在一个工厂生产一个产品的不同型号产品。接下来通过抽象工厂模式来解决这个问题。
抽象工厂模式
有多个工厂,每个工厂生产一种产品的多种型号的多个产品
代码:
一个工厂可以生产不同型号的产品,客户需告诉工厂需要什么型号的产品
代码:
public abstract BaseOperate { public double NumberA{get;set;} public double NumberB{get;set;} public abstract double GetResult(); } public class AddOperate:BaseOperate { public override double GetResult() { return NumberA+NumberB; } } public class MinusOperate:BaseOperate { public override double GetResult() { return NumberA-NumberB; } } ...... public class OperateFactory { public BaseOperate CreateOperation(string operateName) { switch(operateName) { case "Add":return new AddOperate(); case "Minus":return new MinusOperate(); ...... } } }
简单工厂违背了开放封闭原则,在新增功能时,需要修改工厂,这样不是一个好事情。工厂方法模式解决了这个问题。
工厂方法模式
有多个工厂,每个工厂生产一种型号的产品,客户需到不同工厂
方法类与上面一致,将原有的一个工厂拆分成多个工厂,有多少个产品就有多少个工厂
代码:
public Interface IFactory { BaseOperate CreateOperation(); } public AddFactory:IFactory { public BaseOperate CreateOperation() { return new AddOperate(); } } public MinusFactory:IFactory { public BaseOperate CreateOperation() { return new MinusOperate(); } } ...... static void main(string[] agrs) { IFactory factory=new AddFactory(); BaseOperate opt =factory.CreateOperation(); opt.GetResult(); }
在工厂方法中出现一个问题,一个工厂只能生产一个产品,但是我们经常是要在一个工厂生产一个产品的不同型号产品。接下来通过抽象工厂模式来解决这个问题。
抽象工厂模式
有多个工厂,每个工厂生产一种产品的多种型号的多个产品
代码:
public IUser { }
相关文章推荐
- Java 可复用的面向对象的设计模式之 工厂模式Factory详解 :简单工厂模式 工厂方法模式 抽象工厂模式
- 设计模式: 自己手动写一个工厂模式(整合工厂方法模式和抽象工厂模式)
- iOS常用设计模式——工厂方法(简单工厂模式,工厂方法模式, 抽象工厂模式)
- iOS经常使用设计模式——工厂方法(简单工厂模式,工厂方法模式, 抽象工厂模式)
- 设计模式之_简单工厂模式、工厂方法模式、抽象工厂模式 、策略模式、策略与工厂的区别(转)
- 简单工厂模式、工厂方法模式和抽象工厂模式-设计模式学习
- iOS常用设计模式——工厂方法(简单工厂模式,工厂方法模式, 抽象工厂模式)
- Java设计模式(三):工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- Head First 设计模式学习——简单工厂方法-工厂方法模式-抽象工厂模式
- 设计模式之简单工厂、工厂方法模式、抽象工厂模式
- Java设计模式(2)创建型:工厂模式(工厂方法模式与抽象工厂模式)
- java设计模式之工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- 设计模式理解之工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- 常用Java设计模式系列(5)- 简单工厂、工厂方法模式和抽象工厂模式
- 2.工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)(设计模式笔记)
- 设计模式- 简单工厂模式---->工厂方法模式---->抽象工厂模式
- 设计模式之工厂方法模式与抽象工厂模式
- C#设计模式之工厂模式(Factory)--04 抽象工厂模式中访问具体产品类的属性
- C#设计模式之工厂模式(Factory)--03 抽象工厂模式(Abstract Factory)
- 工厂模式(简单工厂模式, 工厂方法模式, 抽象工厂模式)二