设计模式——工厂模式
来源:互联网 发布:h5 刮刮卡 源码 编辑:程序博客网 时间:2024/06/05 00:10
工厂模式根据业务场景的不同, 有三种不同的实现方式,分别是简单工厂模式、工厂模式、抽象工厂模式。
简单工厂模式
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{}
抽象工厂模式中,一个工厂生产多个产品,它们是一个产品族,不同的产品族的产品派生于不同的抽象产品。
0 0
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式——工厂设计模式
- Java设计模式—工厂设计模式
- 设计模式——抽象工厂模式、工厂方法模式
- Java设计模式—工厂方法模式&抽象工厂模式
- Java设计模式—工厂方法模式&抽象工厂模式
- 生物演示攻击
- 对CloseHandle用法的理解
- jdk1.8更新
- 在有GI软件的环境中,对单机db进行升级时遇到的问题
- rocketmq原理:name server ,broker, producer, consumer之间通信
- 设计模式——工厂模式
- redis3.0.7源码阅读(二)源码文件归类
- 不一样的S型方阵
- mongoDB数据库基本操作
- 快速排序挖坑法理解与实现
- 无意识的递归
- C++虚函数表
- 【BZOJ4455】小星星,容斥原理+树形DP
- ___security_cookie机制,防止栈溢出