设计模式
不忘初心-慢慢懂
纳百川,形成自己知识体系
展开
-
设计模式 之 组合模式
组合模式主要使用在整体和部分之间关系,如记事本上复制一个单词和复制一行单词,本质上就是复制。一个OA系统中,一个总公司包含有人力资源部,财务部,旗下有分公司 同样含有人力资源部和财务部,是成树状结构,也就是有组织结构的,不可以简单的平行管理。上述就是典型的使用组合模式的例子。图示:代码: class Program { static v原创 2014-03-20 10:04:16 · 1199 阅读 · 0 评论 -
设计模式之原型模式
和工厂模式类似,都是用来创建对象的,与工厂模式不同,先创建一个原型对象,在通过clone来创建一个新对象。就免去了类创建时重复的初始化。适合于大对象的创建,每次创建一个大对象都需要很大开销,如果每次new 就消耗很大,运行仅仅内存拷贝即可!此例子通过初始化一个画布,然后进行构建简单图形,通过原型模式,只需要初始化一次画布。<?php namespace yuanxing; class原创 2014-04-01 14:08:31 · 1454 阅读 · 1 评论 -
设计模式 之 装饰器模式
动态添加修改类的功能,传统一个类提供了一项功能,如果要修改并添加额外的功能,需要重新写一个类继承他,重新实现类的方法使用适配器模式,紧需要在运行时添加一个装饰器对象即可,可实现最大灵活性通过一个画图示例来演示:想画一个图片,有人想这个图有点小,变大点吧! 有人想 这个图是黑白的,彩色的比较好看,下面就是一个实现!然后对装饰结果做出评价!<?phpnames原创 2014-03-18 21:39:48 · 1152 阅读 · 0 评论 -
设计模式之工厂模式
生成对象,而不是在代码中直接new 对象,当类参数或者名称发生变化时,只需要修改工厂就可以,符合开放封闭原则,和单例模式进行结合请先参考单例模式: http://blog.csdn.net/buyingfei8888/article/details/20949291<?phpnamespace shejimoshi;include "./php09_single.php";c原创 2014-03-26 13:58:27 · 1125 阅读 · 0 评论 -
设计模式之适配器模式
电源适配器大家都知道啥作用:转化为各个电器自己需要的电压。同理,在此适配器作用类似。什么时间使用,主要是项目的后期维护,设计时最好不要想使用适配器模式。适配器模式主要是面向接口编程最常见使用!图示:<?phpnamespace shipeiqi;interface Animal{ public function dongzuo(); public function原创 2014-03-18 10:35:56 · 1227 阅读 · 0 评论 -
设计模式之单例模式
单例模式:每个类对象只允许创建一次,私有化构造函数,定义静态私有化成员变量,定义静态方法实例化类对象<?phpnamespace Single;Class Single{ protected static $singleObj; private function __Construct(){} public static fu原创 2014-03-10 20:41:57 · 1406 阅读 · 0 评论 -
以单例模式实现数据库连接
<?phpclass Db { static private $_instance; static private $_connectSource; private $_dbConfig = array( 'host' => '127.0.0.1', 'user' => 'root', 'password' => '', 'database' => 'video', )原创 2014-12-14 09:09:18 · 2871 阅读 · 0 评论 -
设计模式 之 桥接模式
引言:如果鸟会飞,鸵鸟是鸟吗?鸵鸟如何继承鸟类?如果一定要鸵鸟继承鸟类,可以采用组合的方法,把鸟类中可以被鸵鸟继承的函数挑选出来,而不是类继承,继承是一种强耦合的结构,父变子变,多次继承很可能照成”类爆炸“。组合的一种实现方式就是桥接模式----从多个角度看待同一件事物。简单代码: //鸟类 class bird { public void eat();原创 2014-03-25 13:42:38 · 1129 阅读 · 0 评论 -
设计模式之职责链模式
当很多对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合,将这个对象连成一条链,并沿着链处理请求,直到有一个对象处理它为止。图示:请假加薪的实例: //申请 class Request { //申请类别 private string requestType; public string RequestType原创 2014-03-31 21:14:59 · 993 阅读 · 0 评论 -
设计模式 之 迭代器模式
迭代器提供了一种方法顺序访问一个聚合对象,而不暴露对象的内部细节 。net中的foreach就是典型的迭代器模式图示:代码: 车上售票员对乘客售票 class Program { static void Main(string[] args) { ConcreteAggregate a = new Con原创 2014-03-21 10:41:49 · 1262 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式是我们经常用的一个模式,比如在用wcf做服务的时候通知客户端做一些操作一般用设计者模式。当一个对象状态发生改变时,依赖她的对象全部收到通知,并自动进行更新,实现了低耦合,非侵入式更新设计实现:<?phpnamespace observer;//事件监听 实现添加观察者,和对观察者进行通知,以后事件类要继承这个类abstract class Eve原创 2014-03-11 12:20:31 · 1158 阅读 · 0 评论