分享

大话PHP设计模式

 井梅 2018-09-25

一、php面向对象高级特性

1.         命名空间

2.         类自动载入

1)         spl_autoload_register();

3.         PSR-0规范

1)         命名空间与绝对路径一直

2)         类名首字母大写

3)         除入口文件外,其他".php"必须只有一个类

4.         SPL标准库

1)         stack

a)         new SplStack()

b)         push()

c)         pop()

2)         queue

a)         new SplQueue()

b)         enqueue()

c)         dequeue()

3)         heap

a)         new SplHeap()

b)         insert()

c)         extract()

4)         fixedArray 固定长度数组

a)         new fixedArray(10)

5.         php链式操作

6.         PHP魔术方法

1)         __get|__set 设置|调用不存在的属性

2)         __call|__callStatic 调用不存在的方法|静态方法

3)         __toString  转成字符串

4)         __invoke  对象当成函数去执行时调用invoke

二、11php设计模式

1.         三种基本设计模式

1)         工厂模式

a)         工厂方法或者类生成对象,而不是在代码中直接new

2)         单例模式

a)         使某个类的对象仅创建一次

3)         注册树模式

a)         全局共享和交换对象

2.         适配器模式

1)         将不同的函数接口封装成统一的api

2)         cache适配器 mysql-mysql_i-PDO适配器

3.         策略模式

1)         将一组特定的行为和算法封装成类,以适应某些特定的上下文环境

2)         分支逻辑

4.         数据对象映射模式

1)         将对象和数据存储映射起来,对一个对象操作会映射出对数据存储的操作

5.         观察者模式

1)         当一个对象状态发生改变时,依赖它的对象全部会受到通知,并自动更新

2)         场景:

a)         一个事件发生后,要执行一连串的更新操作,传统的编程方式是在事件的代码之后直接加入处理逻辑,当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改时间主体的代码

3)         观察者模式实现了低耦合,非侵入式的通知和更新机制

6.         原型模式

1)         与工厂模型作用类似,用来创建对象

2)         与工厂模式的实现不同,原型模式是县创建好一个原型对象,然后通过clone原型对象来创建新的对象,免去类创建时重复的初始化操作

3)         原型模式适用于大对象的创建

4)         重点:clone

7.         装饰器模式

1)         可以动态的添加修改类的功能

2)         一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式需要写一个子类来继承,并重新实现类的方法

3)         使用装饰器模式,仅需要在运行时添加一个装饰器的对象即可实现,可以实现最大的灵活性

8.         迭代器模式

1)         在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素

2)         相比于传统的编程模式,迭代器模式可以隐藏遍历元素的所需操作

3)         继承Iterator接口:class AllUser implements \Iterator{}

9.         代理模式

1)         在客户端与实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现细节部署到另外的服务器

2)         Proxy还可以与业务代码分离,业务代码中通过RPC来委派任务

三、面向对象编程基本原则

1.         单一职责:一个类,只需要做好一件事情

2.         开放封闭:一个类,应该是可扩展的,而不可修改的

3.         依赖倒置:一个类,不应该强依赖另外一个类,每个类对于另外一个类都是可替换的

4.         配置化:尽可能的使用配置,而不是硬编码

5.         面向接口编程:只需要关心接口,不需要关心实现

四、MVC结构

1.         模型

2.         视图

3.         控制器

五、配置与设计模式

1.         php中使用ArrayAccess实现配置文件的加载

2.         在工厂方法中读取配置,生成可配置化的对象

3.         使用装饰器模式实现权限验证,模板渲染,json串化

4.         使用观察者模式实现数据更新时间的一系列更新操作

5.         使用代理模式实现数据库的主从自动切换

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多