php设计模式
阿远个人博客
阿远个人博客,记录一些胡思乱想,熟悉PHP和Java,目前从事开发相关工作。
展开
-
php八大设计模式之工厂模式
简单点来说,就是用到什么类,就去实例化对应的类。比如:php 可能连接 mysql,可能连接 sqlserver,也可能是 oracle 数据库,可以动态的去链接。 书籍<php权威编程>(英文名称为PHP 5 Power Programming)也提到一个工厂模式的例子:在为用户注册的时候,分为很多种角色的用户。比如册用户,匿名用户、管理员用户等。完全使用可以使用工厂的思想来实现,代码也容易维原创 2017-03-24 15:05:53 · 467 阅读 · 0 评论 -
php八大设计模式之简介篇
设计模式的在面向对象中的重要性? 更深入的理解面向对象的思想,有利于开发出扩展性强的程序。在 PHP 面向对象中有一个 “开闭原则” :“软件实体应当对扩展开放,对修改关闭”。通俗的说: 添加新类/接口等进来行,修改不行。 1、工厂模式 简单点来说,就是用到什么类,就去实例化对应的类。比如:php 可能连接 mysql,可能连接 sqlserver原创 2017-03-24 17:00:27 · 426 阅读 · 0 评论 -
php八大设计模式之桥接模式
一个抽象产生多种具体的实现方式,单纯的通过子类继承会有子类爆炸(过多的子类产生)的现象,系统需要它们之间进行动态耦合。面向过程:<?php header("content-type:text/html;charset=utf8"); /** * 在一个网站中,我们都有给用户发通知消息的情况。比如有站内发送、 邮箱发送、及短信发送等等。 * 面向过程形式完成原创 2017-03-24 16:49:31 · 477 阅读 · 0 评论 -
php八大设计模式之适配器模式
将一个抽象被具体后的结果转换成另外一个需求所需的格式。 在生活中也处处有适配器的出现,比如转换头,就是让两种不同的规格合适的搭配在一起。<?php header("content-type:text/html;charset=utf8"); /** * 适配器就是将旧的结果(满足旧的要求的结果)转换成新的(新要求的 格式)。 */ ///比如原创 2017-03-24 16:33:40 · 334 阅读 · 0 评论 -
php八大设计模式之装饰器模式
我们都知道,得到一匹布需要大概这么几步: 1、染色 2、印花 3、裁剪 这种形式在面向对象中怎么实现呢?面向过程【继承模式】实现: 继承模式得到需要的布料,一步一步的加工。 继承的层次越来越深,扩展性差。如果中间加道其他程序,就有些吃力了。<?php header("content-type:text/html;charset原创 2017-03-24 16:28:42 · 920 阅读 · 2 评论 -
php八大设计模式之策略模式
策略模式提供一个虚拟的整体,根据不同的要求(参数)提供不同的“零件”(调用不同的“零件”实现不同的结果)。<?php /** * 策略模式 * 跟工厂模式差别不大,用到谁就去实例化谁。 * * 工厂模式,着眼于得到对象,并操作对象。 * 策略模式,着重得到对象某方法的运行结果。 */ //计算器接口。 inte原创 2017-03-24 16:17:58 · 626 阅读 · 0 评论 -
php八大设计模式之观察者模式
例如在登录时,需要判断用户是第几次登录,登录过于频繁我们就给用户提示异常。根据用户的爱好,在用户登录后给予相应的猜你喜欢。如果都在 登录时判断密码的方法内完成,不符合面向对对象的单一职责。那我们该怎么完成呢? php 在 5.1 之后有自带的 --> 观察者 observer 和 被观察者 subject 接口。 观察者模式分为观察者、与被观察者。观察者时刻监听被观察动态,及时做出相应改原创 2017-03-24 16:09:40 · 365 阅读 · 0 评论 -
php八大设计模式之职责链模式
当发生一种事情时,我们需要要对应职责的事物去处理对应的事情。 或者去找最近的类(就是级别最低的)去解决,如果解决不了就顺着往上找职责更高的,直到解决为止。 注意:一定是要有一个职责最高的类,否则会有问题。例子: 比如某同学骂人,我们要告诉纪委;旷课我们要告诉班长;打架我们要告诉班主任。不同情况对应不同的人,产生的结果也是不同的,在 php 中我们是怎么实现的呢?<?php /*原创 2017-03-24 15:43:59 · 315 阅读 · 0 评论 -
php八大设计模式之单例模式
单例模式的好处: 实例化后只得到一个对象,减少内存的开销。实现单例模式: 一、提供一个私有的属性用来存储实例后的对象。 二、禁止外部实例化对象,提供公共的的方法,返回实例化后的对象。 三、避免继承此类,然后重写子类的方法,加大方法的权限。 四、避免克隆此类。原创 2017-03-23 13:34:42 · 612 阅读 · 0 评论