工厂方法模式实例与讲解
来源:互联网 发布:惠普m1216扫描软件 编辑:程序博客网 时间:2024/05/29 13:30
abstract class ApptEncoder{ abstract function encode();}class BloggsApptEncoder extends ApptEncoder{ function encode(){ return 'this is bloggs object'; }}class MegaApptEncoder extends ApptEncoder{ function encode(){ return 'this is mega object'; }}abstract class CommsManager{ abstract function getHeaderText(); abstract function getApptEncoder(); abstract function getFooterText();}class BloggsCommsManager extends CommsManager{ function getHeaderText(){ return 'this is bloggs header'; } function getApptEncoder(){ return new BloggsApptEncoder(); } function getFooterText(){ return 'this is bloggs footer'; }}class MegeCommsManger extends CommsManager{ function getHeaderText(){ return 'this is mega header'; } function getApptEncoder(){ return new MegaApptEncoder(); } function getFooterText(){ return 'this is mega footer'; }}
以上工厂模式方法的UML图如下:
对以上的工厂模式方法,我们还可以进行扩展,如果此时,我们需要生成新的LogCommsManager,我们只需要让LogCommsManager继承抽象类CommsManager,然后创建新的类LogApptEncoder,让LogApptEncoder继承ApptEncoder即可,很好的遵循了设计模式的开闭原则(对于修改是封闭的,对于扩展是开发的)。
0 0
- 工厂方法模式实例与讲解
- 简单工厂模式实例与讲解
- 抽象工厂模式实例与讲解
- 实例讲解Java工厂模式
- java工厂模式实例讲解
- 工厂方法模式实例
- PHP中“简单工厂模式”实例讲解
- PHP中“简单工厂模式”实例讲解
- PHP中“简单工厂模式”实例讲解
- PHP中“简单工厂模式”实例讲解
- PHP中“简单工厂模式”实例讲解
- PHP中“简单工厂模式”实例讲解
- 工厂方法模式--水果实例
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 工厂模式与工厂方法模式
- 第32讲 实践项目——输出小星星6
- 嵌入式Linux的几个小问题
- python 实现从mysql 导出为csv
- 51Nod 1459 迷宫游戏(dijkstra)
- *.h文件头部常用 #ifndef _STDIO_H_,#if __cplusplus
- 工厂方法模式实例与讲解
- List接口问题和java里TreeSet的add问题
- oracle中的replace函数应用
- W中的Event 1A到Event 1J以及Event 2A到2F的含义?
- spring aop的一些问题和bean组件问题
- Git上手(1)认识Git
- 浅谈阿里云伏羲sortBenchmark为何这么快
- ZOJ题目分类
- VS 筛选器和文件夹