极速理解设计模式系列:4.抽象工厂模式(Abstract Factory Pattern)
来源:互联网 发布:java string转成Byte 编辑:程序博客网 时间:2024/06/06 13:58
五个角色:抽象产品角色(AbstractProduct)、具体产品角色(Product)、抽象工厂角色(AbstractFactory)、具体工厂角色(ConcreteFactory)、客户端(Client)
抽象产品角色(AbstractProduct):声明产品接口
具体产品角色(Product):实现产品的接口
抽象工厂角色(AbstractFactory):声明生成对应抽象产品的方法
具体工厂角色(ConcreteFactory):实现生成抽象产品方法,生成产品
客户端(Client):执行生产并运行产品
实现思路:客户端调用具体的工厂角色调用具体的产品角色。
类图:
应用场景:我们需要在测试环境和正式环境使用不同的日志类写日志。
日志可以分为两大类,分别是写入数据库和写入txt文件的。
其中写入数据库的有通过Sql语句写入MS Sql Server和Linq写入MongoDB。
写入Txt有通过Log4Net方式和普通Stream流。
分析:我们构建两个Factory工厂分别是用与测试环境的日志记录工厂(MongDB和Stream流)和生产环境的日志记录工厂(Mssql和Log4Net)。另外有两个抽象产品角色是:写入数据库、写入Txt。具体产品角色是MongDB方式、Stream流、Mssql和Log4Net。
下面我们在控制台程序去演示一下如何使用Abstract Factory Patterns:
一、 抽象产品角色(AbstractProduct):
二、具体产品角色(Product):
三、抽象工厂角色(AbstractFactory):
四、具体工厂角色(ConcreteFactory):
五、客户端(Client):
- 极速理解设计模式系列:4.抽象工厂模式(Abstract Factory Pattern)
- 设计模式【抽象工厂Abstract Factory Pattern】
- 设计模式 - Abstract Factory Pattern(抽象工厂模式)
- 设计模式 - Abstract Factory Pattern(抽象工厂模式)
- 设计模式 - Abstract Factory Pattern(抽象工厂模式)
- 设计模式3:Abstract Factory Pattern(抽象工厂模式)
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- Net设计模式之抽象工厂模式(Abstract Factory Pattern)
- 设计模式——抽象工厂模式【Abstract Factory Pattern】
- c++设计模式:抽象工厂模式(Abstract Factory Pattern)
- 设计模式 - 抽象工厂模式(abstract factory pattern) 详解
- JAVA设计模式之 抽象工厂模式【Abstract Factory Pattern】
- 浅谈设计模式:抽象工厂模式(Abstract Factory Pattern)
- 设计模式:抽象工厂模式(Abstract Factory Pattern)
- 设计模式--抽象工厂模式【 Abstract Factory Pattern】
- 设计模式 抽象工厂模式(Abstract Factory Pattern)
- 设计模式(3):抽象工厂模式(Abstract Factory Pattern)
- Java设计模式--抽象工厂模式【Abstract Factory Pattern】
- mybatis ibatis Generator
- 股票哥:A股玩起“跑得快” 高管减持学雷锋2013-12-25 13:57
- 圣诞街头场景登场 《TOUCH》辣舞平安夜狂欢
- UML建模之时序图(Sequence Diagram)
- Oracle DB 使用RMAN恢复目录
- 极速理解设计模式系列:4.抽象工厂模式(Abstract Factory Pattern)
- AdrenoProfiler对opengles的性能分析
- NoSQL数据库
- lsof
- 实现 DropDownList的CheckBox多选
- Shared buses vs NoCs
- ANDROID常用颜色
- 常用滤波算法
- java并发编程-Executor框架