韩天峰《大话PHP设计模式》听课笔记

作者: wxfeng 分类: php 发布时间: 2020-06-09 16:37

转载自:https://www.cnblogs.com/jiaoran/p/10457981.html

课程主要内容

1、PHP面向对象的高级特性

2、11种设计模式

3、PSR-0,Composer,Phar等最流行的技术

目标
掌握PHP各类设计模式,并具备设计纯面向对象框架和系统的能力

二、编程字体的选择    等宽字体 Courier New,Consolas,Source Code Pro(推荐),由Adobe公司专门为程序员设计,免费开源

三、命名空间  5.3以后增加

5.5之后,类自动载入    ,以前用 __autoload(),后被废弃,spl_autoload_register

PSR-0规范    1、命名空间必须与绝对路径一致    2、类名首字母必须大写    3、除入口文件外,其他‘.php’只有一个类

四、SPL标准库

栈,SplStack,先进后出,push,pop

队列,SplQueue,先进先出,enqueue,dequeue

最小堆,SplMinHeap,先进先出,insert,extract

固定长度的数组,SplFixedArray

链式操作,魔术方法 __get/__set, __call/__callStatic, __toString, __invoke

五、三种基础设计模式

工厂模式,工厂方法或类生成对象,而不是在代码里直接new

单例模式,使某个类的对象只允许被创建一次

注册树模式,全局共享和交换对象

六、适配器模式

1、可以将截然不同的函数接口封装成统一的API

2、实际应用举例,数据库操作有mysql,mysqli,pdo,可以用适配器模式统一成一致。类似的场景还有cache适配器,将memcache,redis,apc,file等不同的缓存函数统一成一致

七、策略模式

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

2、实际举例,假如一个电商系统,针对男女性用户展示不同的商品类目

3、可以实现Ioc,依赖倒置、控制反转

八、数据对象映射模式

1、是将对象和数据存储映射起来,对一个对象的操作可映射为对数据存储的操作

2、实现一个ORM类,对复杂的SQL语句映射成对象属性的操作

九、观察者模式

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

2、实现了低耦合,非侵入式的通知与更新机制

十、原型模式

1、与工厂模式类似,都是用来创建对象

2、先创建好一个原型对象,然后通过clone来创建新的对象,这样就免去了对象创建时重复的初始化操作

3、适用于大对象的创建,仅需内存拷贝即可

十一、装饰器模式

1、decorator,可以动态地添加修改类的功能

2、一个类提供了一项功能,如果要增加或修改额外的功能,传统的编程模式,需要写一个子类继承它,并重写相应的方法

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

array_reserve,array_rand

十二、迭代器模式

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

2、相对于传统的编程模式,可以隐藏遍历元素所需要的操作

\Iterator

十三、代理模式

1、在客户端与实体之间建立一个代理对象(proxy),客户端对实体操作全部委派给代理对象,隐藏实体的具体实现细节

2、Proxy还可以与业务代码分离,部署到另外的服务器,业务代码中通过RPC来委派任务

十四、面向对象设计的基本原则

1、单一职责:一个类只完成一个功能

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

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

4、配置化:尽可能使用配置,不要硬编码

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

配置与设计模式

1、使用ArrayAccess实现配置文件的自动加载

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注