php设计模式之委托模式 使用委托模式目的是消除潜在的、难以控制的if/else语句。 上述仅仅是一个示例,如果有更多的Type,那么这里的if/else将会有多个并且每次增加类型需要修改原来的文件、原来的类。而接下来的委托模式将改变这个现状。委托模式的类并不提供实际的解决方案,接受参数交给不同的类 ...
分类:
Web程序 时间:
2016-04-14 22:12:06
阅读次数:
217
声明:本系列博客參考资料《大话设计模式》,作者程杰。 訪问者模式表示一个作用于某对象结构中的各元素的操作。它使你能够在不改变各元素类的前提下定义作用于这些元素的新操作。 UML类图: 角色: 1.抽象訪问者(State):为该对象结构中详细元素角色声明一个訪问操作接口。该操作接口的名字和參数标识了发 ...
分类:
Web程序 时间:
2016-04-10 10:10:45
阅读次数:
218
单例模式(职责模式): 简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务; 单例类: 1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化; 2、拥有一个保存类的实例的静态成员变量 ...
分类:
Web程序 时间:
2016-03-27 17:41:33
阅读次数:
139
要了解设计模式 首先我们要先了解 php的命名空间和类的自动载入的功能 下面我们来说一下 命名空间 概念缘由:比如一个a.php的文章 但是我们需要两个 此时同一个目录下不可能存在两个a.php 那么我们可以放到my/home 和 my/home1的目录下 此时命名空间就有了它的意义 那么空间即为m
分类:
Web程序 时间:
2016-03-14 15:16:16
阅读次数:
266
注册模式: 1 class DbConnections{ 2 var $_store = array(); 3 public function isValid($key) { 4 return isset($this->_store[$key]); 5 } 6 7 public function &
分类:
Web程序 时间:
2016-03-11 12:19:20
阅读次数:
169
Source Code Pro字体 easyphp 命名空间:隔离类和函数,php5.3以后 //test5.php<?php namespace Test5;//命名空间必须是程序脚本的第一条语句,除了declare function test(){ echo __FILE__; } //test
分类:
Web程序 时间:
2016-02-29 12:37:15
阅读次数:
204
<?php /** * 单例模式 * 通过提供对自身共享实例的访问,单例模式用于限定特定对象只能被创建一次的情况。 * * 应当阻止创建某个对象的多个实例时,我们最好用单例模式来创建这个对象。 */ class Single{ protected static $_instance = NULL;
分类:
Web程序 时间:
2016-02-23 18:55:34
阅读次数:
204
<?php /** * 装饰器模式 * 如果已有对象的部分内容或功能发生变化,但是不需要修改原始对象的结构,应使用装饰器模式 * * 为了在不修改对象结构的前提下对现有对象的内容或功能稍加修改,应使用装饰器模式 */ class Base{ protected $_content; public f
分类:
Web程序 时间:
2016-02-23 18:50:15
阅读次数:
160
<?php /** * 策略模式 * 策略模式帮助构建的对象不必自身包含逻辑,而是能够根据需要利用其他对象中的算法 * * 在能够创建基于对象的,由自包含算法组成的可互换对象时,最佳的做法是使用策略模式 */ interface Math{ function calc($op1,$op2); } c
分类:
Web程序 时间:
2016-02-23 18:47:25
阅读次数:
169
<?php /* * 桥接模式 * 使用发送器,将一个类对象传入另一个类作为属性,耦合M+N个类 * */ abstract class Info { protected $_send = NULL; public function __construct($send) { $this->_send
分类:
Web程序 时间:
2016-02-23 18:35:05
阅读次数:
145