自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

转载 设计模式总结

创建型模式Singleton模式解决的是实体对象个数的问题。除了Singleton之外,其他创建型模式解决的都是new所带来的耦合关系。Factory Method,Abstract Factory,Builder都需要一个额外的工厂类来负责实例化“易变对象”,而Prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象”。如果遇到“易变类”,起初的设计通常从Factory M

2012-08-06 17:30:11 1967

原创 设计模式php实例:组合模式

组合模式有时候又叫做部分-整体模式,它把程序内部简单元素和复杂元素提供给客户端统一的接口,使客户端和程序的内部结构结构,内部可以随意更改扩展。从类图上看组合模式形成一种树形结构,由枝干和叶子继承Compont显然不符合里氏代换原则。组合模式类图:php代码实例(来自http://www.linuxso.com/architecture/32350.html):

2012-08-06 17:10:51 3518 2

原创 设计模式php实例:装饰者模式

扩展一个类一般可以使用继承或者组合的形式。使用继承的方式扩展时,随着基类子类的增多,以及子类的子类出现,继而出现了代码的无限制膨胀,增加了系统的复杂性。而使用装饰者模式既继承又引用,能动态扩展类的一些功能,减少了继承数量。装饰纸UML类图:php代码实例(出自php设计模式)/** * 装饰模式 */ /** * 抽象构件角色 */interface

2012-08-06 16:42:46 2827

原创 设计模式php实例:原型模式

原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。它允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,其工作原理是通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。它主要面对的问题是:“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口(from百度百

2012-08-06 14:42:31 1961 1

原创 设计模式php实例:迭代器模式

迭代器模式提供一种访问一个容器对象中的各个元素,而又不暴露其内部细节的方法。在应用中,我们时常会遇到各种变量代码,foreach在很多代码处都可以见到,使用迭代器可以对不同数据结构的集合封装,外部只需调用迭代器提供的接口即可,提高了应用的可扩展性。迭代器UML类图PHP SPL中提供了迭代器接口Iterator和容器接口IteatorAggragateYII代码实例:

2012-08-05 22:04:21 2500

原创 设计模式php实例:策略模式

策略模式在于定义一系列的算法,并把它们封装起来,算法可以自由添加和替换,符合开闭原则,它降低了算法与具体的业务逻辑的耦合性。它还有一个优点是避免了代码中一些条件判断语句,当代码中出现了太多得判断语句的时候也可以考虑一下是否可以用策略模式。策略模式UML类图:ZF中代码实例:(再看一下 这个更像是观察者模式...)class Zend_Filter implement

2012-08-05 21:28:01 1361

原创 设计模式php实例:观察者模式

当一个对象状态发生改变后,会影响到其他几个对象的改变,这时候可以用观察者模式。像wordpress这样的应用程序中,它容外部开发组开发插件,比如用户授权的博客统计插件、积分插件,这时候可以应用观察者模式,先注册这些插件,当用户发布一篇博文后,就回自动通知相应的插件更新。观察者模式符合接口隔离原则,实现了对象之间的松散耦合。观察者模式UML图:在php SPL中已经提供SplSu

2012-08-05 21:02:16 6492

原创 设计模式php实例:适配器模式

适配器模式将一个类的换成客户端需要的另一个接口,使原本不兼容的接口能一起工作。一个现实中的例子,假如屋里墙上只有两项插口,而风扇有三个插头,这时需要再拿一个移动插线板,插线板接入墙壁插口的一段是两项插头,插线板另外一段能够提供三项插口给风扇,这时候插线板起到了一个适配器的作用。在应用中,适配器模式分为类适配器和对象适配器。类适配器类适配器中适配器继承原有的Adaptee

2012-08-05 19:54:47 5105 1

原创 设计模式php实例:工厂模式

在大的应用中如果每需要得到一个对象都要自己去new,程序的业务逻辑就很混乱,统一由工厂创建,便于管理和扩展。工厂模式主要针对的多态,如果该类可能有很多派生,使用工厂模式比较方便。工厂模式一般可以分为三类:简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂模式:zf代码实例:class Zend_Db{//更具传人的apdater参数觉得实例化相应的db publ

2012-08-05 18:10:15 1490 1

原创 设计模式php实例:单例模式

单个类例模式要求一只能实例化一次,并且实例化的过程由该类自身执行。在一些情况下系统只需要一个全局的对象,以协调整个系统的行为。在具体的php应用中单例模式可以封装应用的配置,数据库连接等其他资源的加载,以达到节省空间资源的效果。另外在多线程的情况下(php应用中中并不多),比如同时进行文件创建、打开、修改一个文件的操作时用单例可以实现锁机制。单例模式在应用中减少了代码量,就像全局变

2012-08-05 15:21:53 980

转载 设计模式原则详解

这篇文章,不需要你一次就看懂,如果你真的能一次都看懂,我想设计模式对于你来说 已经没什么难度了..因为设计模式就是要体现这些原则的,你可以把设计原则看做是一门语言,设计模式是由这些语言编码的程序..你既然已经明白,精通了语 言,剩下的编码自然是很简单的事情,编码的越多则经验越多,经验越多则对原则的理解就越深...这是一个学习领悟的过程..     我希望这篇文章能帮助新人感受到设计模式的乐

2012-08-05 13:04:14 1165

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除