设计模式——工厂模式
2017-01-08 20:20
453 查看
工厂模式根据业务场景的不同, 有三种不同的实现方式,分别是简单工厂模式、工厂模式、抽象工厂模式。
简单工厂通过构造时传入的标识来生产产品,不同产品都在同一个工厂中生产,这种判断会随着产品的增加而增加,给扩展和维护带来麻烦。
工厂模式中,一个工厂生产一个产品,所有产品派生于同一个抽象产品(或产品接口),但工厂模式无法解决产品族和产品等级结构的问题
抽象工厂模式中,一个工厂生产多个产品,它们是一个产品族,不同的产品族的产品派生于不同的抽象产品。
简单工厂模式
class simpleFactory{ int prodNo; public simpleFactory(int proN){ this.prodNo= prodNo; } public IProduction GetProduction(){ switch(prodNo){ case 1: return new ProductionA(); case 2: return new ProductionB(); default: return new ProductionC(); } } } interface IProduction{} class ProductionA implements IProduction{} class ProductionB implements IProduction{} class ProductionC implements IProduction{}
简单工厂通过构造时传入的标识来生产产品,不同产品都在同一个工厂中生产,这种判断会随着产品的增加而增加,给扩展和维护带来麻烦。
工厂模式
Interface IFactory(){ IProduction getProduction(); } class FactoryA implements IFactory{ IProduction productionA; public FactoryA(){ this.productionA = new ProductionA(); } public IProduction getProduction(){ return this.productionA; } } class FactoryB implements IFactory{ IProduction productionB; public FactoryB{ this.productionB = new ProductionB(); } public IProduction getProduction(){ return this.productionB; } } interface IProduction{} class ProductionA implements IProduction(){} class ProductionB implements IProduction(){}
工厂模式中,一个工厂生产一个产品,所有产品派生于同一个抽象产品(或产品接口),但工厂模式无法解决产品族和产品等级结构的问题
抽象工厂模式
interface IFactory{ IFridge CreateFridge(); IAirCondition CreateAirCondition(); } class SamsungFactory implements IFactory{ public IAirCondition CreateAirCondition(){ return new SamsungAirCondition(); } public IFridge CreateFridge(){ return new SamsungFridge(); } } class GreeFactry implements IFactory{ public IAirCondition CreateAirCondition(){ return new GreeAirCondition(); } public IFridge CreateFridge(){ return new GreeFridge(); } } public interface IFridge{} public interface IAirCondition{} public class SamsungFridge implments IFridge{} public class GreeFridge implements IFridge{} public class SamsungAirCondition implements IAirConditio{} public class GreeAirCondition implements IAirConditi{}
抽象工厂模式中,一个工厂生产多个产品,它们是一个产品族,不同的产品族的产品派生于不同的抽象产品。
相关文章推荐
- PropertyChangeListener简单理解
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- 浅谈设计模式的学习
- 设计模式---状态模式在web前端中的应用
- Ruby设计模式编程之适配器模式实战攻略
- 实例讲解Ruby使用设计模式中的装饰器模式的方法
- 设计模式中的模板方法模式在Ruby中的应用实例两则
- Ruby设计模式编程中对外观模式的应用实例分析
- 实例解析Ruby设计模式编程中Strategy策略模式的使用
- Ruby中使用设计模式中的简单工厂模式和工厂方法模式
- Ruby使用设计模式中的代理模式与装饰模式的代码实例
- 详解组合模式的结构及其在Ruby设计模式编程中的运用
- C# 设计模式系列教程-建造者模式
- C#编程中使用设计模式中的原型模式的实例讲解
- 使用设计模式中的工厂方法模式进行C#编程的示例讲解
- 实例解析C#设计模式编程中简单工厂模式的使用