PHP进阶
只是简要说明起原理和用法,具体可以百度
abstract 抽象类
抽象类是指在 class 前加了 abstract 关键字且存在抽象方法,不带{},如public function test()
interface 接口类
interface 需要实现,要用 implements ,而 abstract class 需要继承,要用 extends 。
一般用法:
定义一个abstract /interface 的 缓存类模板A,有新增存储方法、删除缓存方法
使用文件缓存,继承缓存类模板A
使用redis缓存,继承缓存类模板A
这样,我们就可以不修改代码,或少修改代码,通过配置来决定用哪个方式缓存
========= ========= ========= ========= ========= ========= =========
门面:非静态方法,可以像静态那样调用。
========= ========= ========= ========= ========= ========= =========
依赖注入:
控制反转(IOC)是一种思想,依赖注入(DI)是实施这种思想的方法。
一般做法:
一个发送短信类,一个发送邮件类
使用interface或者abstract定义他们有相同的方法(发送、群发等)
可以使用依赖注入在控制器选择用哪个类
这样相对直接new写的更好看而已
========= ========= ========= ========= ========= ========= =========
门面的概念:
如果想实现静态的去调用一个类的所有的动态(和静态)方法,则可以定义一个Facade的子类,定义一个方法用于返回该类,就可以想调用类方法时,从动态调用$class->function()
变成静态调用class::function()