什么是建造者模式建造者模式主要是为了消除其它对象复杂的创建过程。设计场景有一个用户的UserInfo类,创建这个类,需要创建用户的姓名,年龄,金钱等信息,才能获得用户具体的信息结果。创建一个UserInfoBuilder 用户建造者类,这个类,将UserInfo复杂的创建姓名,年龄,金钱等操作封装起...
分类:
Web程序 时间:
2015-04-10 17:09:12
阅读次数:
116
策略模式:策略模式设计帮助构建的对象不必自身包含逻辑,而是能够根据需要利用其他对象中的算法。使用场景:例如有一个CD类,我们类存储了CD的信息。原先的时候,我们在CD类中直接调用getCD方法给出XML的结果随着业务扩展,需求方提出需要JSON数据格式输出这个时候我们引进了策略模式,可以让使用方根据...
分类:
Web程序 时间:
2015-04-10 16:54:59
阅读次数:
135
数据访问对象模式数据访问对象模式描述了如何创建透明访问数据源的对象。场景设计设计一个BaseDao基类,实现数据库操作基本的一些query,insert,update方法在实际使用的过程中,继承BaseDao,就可以直接调用基类的数据库操作方法代码:BaseDao 数据库操作基类 db = m...
分类:
Web程序 时间:
2015-04-10 16:50:44
阅读次数:
146
什么是适配器:适配器设计模式只是将某个对象的接口适配为另一个对象所期望的接口。设计情景:假如我们原始的有一个UserInfo的类,提供用户信息的类,早起设计该类的时候,只实现了一个getUserName获取用户名的方法。我们的MyOldObject类中,将从UserInfo这个类中获取用户信息,并且...
分类:
Web程序 时间:
2015-04-10 15:17:32
阅读次数:
122
工厂模式提供获取某个对象实例的一个接口,同时使调用代码避免确定实例化基类的步骤。工厂模式 实际上就是建立一个统一的类实例化的函数接口。统一调用,统一控制。工厂模式是php项目开发中,最常用的设计模式,一般会配合单例模式一起使用,来加载php类库中的类。应用场景我们拥有一个Json类,String类,...
分类:
Web程序 时间:
2015-04-10 15:14:25
阅读次数:
182
单例模式通过提供自身共享实例的访问,单例设计模式用于限制特定对象只能被创建一次。使用场景例如数据库实例,一般都会走单例模式。单例模式可以减少类的实例化代码:来源InitPHP框架,先检测类有没被实例化,实例化了就使用已经存放在静态变量中的对象实例,没有则实例化并将对象保存起来。 /** ...
分类:
Web程序 时间:
2015-04-10 15:10:06
阅读次数:
108
PHP 魔术方法的使用① __get/__set:将对象的属性进行接管当访问一个不存在的对象属性时:index.phptitle;会抛出一个错误:Notice: Undefined property: Common\Object::$title in D:\practise\php\design\p...
分类:
Web程序 时间:
2015-04-10 01:11:06
阅读次数:
174
声明:本系列博客参考资料《大话设计模式》,作者程杰。
前面两节内容介绍了什么是设计模式以及六大原则,相信看完前两节内容大家对设计模式已经有了初步的认识,接下来说一下设计模式的分类。
一般将面向对象设计模式分为三类:创建型、结构型、行为型三种。
创建型:创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创...
分类:
Web程序 时间:
2015-04-09 23:49:48
阅读次数:
254
PHP 链式操作的实现$db->where()->limit()->order();在 Common 下创建 Database.php。链式操作最核心的地方在于:在方法的最后 return $this;Database.php:where('id = 1');//$db->where('name =...
分类:
Web程序 时间:
2015-04-09 23:30:39
阅读次数:
167
SPL 库的使用(PHP 标准库)1. SplStack,SplQueue,SplHeap,SplFixedArray 等数据结构类① 栈(SplStack)(先进后出的数据结构)index.php:push("data1\n"); //入栈$stack->push("data2\n");e...
分类:
Web程序 时间:
2015-04-09 21:38:39
阅读次数:
128