(七)面向对象的设计原则之三
来源:互联网 发布:深圳数据恢复公司 编辑:程序博客网 时间:2024/05/16 04:59
一. 开放与封闭原则:
其基本的思想是:
1.Open:模块的行为必须是开放的、支持扩展的而不是难于改变的。
2.Closed:在对模块的功能进行扩展时,不应该影响或大规模地影响原有的程序模块。
1. 在设计方面充分应用“抽象”和“封装”的思想。
a. 找到“可变因素”将之封装。
b. “同样”的可变因素应该封装到“同一个”对象中。
2. 在系统功能编程实现方面应用面向接口的编程。
a. 当需求发生变化时可提供新类以适应变化。
b. 面向接口要求功能类实现接口,对象声明为接口类型。
其基本的思想是:
1.Open:模块的行为必须是开放的、支持扩展的而不是难于改变的。
2.Closed:在对模块的功能进行扩展时,不应该影响或大规模地影响原有的程序模块。
二.实例:
<?phpinterface process{ public function process();}//播放器的编码class playerEncode implements process{ public function process(){ echo "encode\r\n"; }}class playerOutput implements process{ public function process(){ echo "output\r\n"; }}//调度管理器class playProcess{ private $message = null; public function __construct(){ } public function callBack(event $event){ $this->message= $event->click(); if ($this->message instanceof process){ $this->message->process(); } }}//播放器的事件处理class mp4{ public function work(){ $playProcess = new playProcess(); $playProcess->callBack(new event('encode')); $playProcess->callBack(new event('output')); }}//事件处理类class event{ private $m; public function __construct($me){ $this->m = $me; } public function click(){ switch($this->m){ case 'encode': return new playerEncode(); break; case 'output': return new playerOutput(); break; } }}$mp4 = new mp4();$mp4->work();三.其它:
1. 在设计方面充分应用“抽象”和“封装”的思想。
a. 找到“可变因素”将之封装。
b. “同样”的可变因素应该封装到“同一个”对象中。
2. 在系统功能编程实现方面应用面向接口的编程。
a. 当需求发生变化时可提供新类以适应变化。
b. 面向接口要求功能类实现接口,对象声明为接口类型。
0 0
- (七)面向对象的设计原则之三
- 面向对象的设计原则(三)
- 面向对象的七种设计原则
- 面向对象的 七种设计原则 (整理)
- 面向对象设计原则之三(里氏替换原则)-构建扩展性更好的系统
- 面向对象设计原则之七--合成复用原则
- 面向对象设计原则之三:里氏替换原则
- 面向对象设计原则之三--依赖倒置(转)原则
- 程序员必备的七大面向对象设计原则(三)
- 程序员必备的七大面向对象设计原则(三)
- 程序员必备的七大面向对象设计原则(三)
- 程序员必备的七大面向对象设计原则(三)
- 程序员必备的七大面向对象设计原则(三)
- 程序员必备的七大面向对象设计原则(三)
- 面向对象设计原则三
- 面向对象的设计原则三 - 接口隔离原则
- 面向对象的设计原则三 - 接口隔离原则
- 面向对象的设计原则之总结
- 横向看分类,扩展,协议的区别
- 为什么选择计算机专业?
- 懒加载中 把JSON文件转模型,复制给控制器的模型属性
- 好厨娘清洁球 财富来自民间牡丹江
- FZU 1002 HangOver
- (七)面向对象的设计原则之三
- linux系统下快速切换到oracle目录下
- 最小生成树——并查集+Kruskal(NYOJ 38 布线问题)
- 使用构造方法产生对象的原理
- FZU 1003 Counterfeit Dollar
- Trie的实现
- Android 4.0源码下载以及编译
- Online Object Tracking: A Benchmark
- 学习计算机方法二