PHP面向对象笔记05
【面向对象的设计原则】
◆ 2.1-面向对象设计的五大原则
2.1.1-单一职责原则 SRP
1. 单一职责有两个含义:① 避免相同的职责分散到不同的类中 ② 避免一个类承担太多职责
2. 为什么要遵守SRP: ① 减少类之间的耦合 ② 提高类的复用性
3. SRP在实际代码开发中的应用:
(1)工厂模式(Factory):允许在代码执行时实例化对象。
→(案例-用工厂模式解决连接多个数据库)----详见PDF
→(案例-用工厂模式解决SNS动态实现)----详见PDF
(2)命令模式:分离“命令的请求者”和“命令的实现者”方面的职责。
→(案例-用命令模式解决餐馆吃饭的问题)
2.1.2-接口隔离原则 ISP
1.IPS的主要观点:
① 一个类对另外一个类的依赖性应当是建立在最小的接口上的。
② 客户端程序不应该依赖它不需要的接口方法(功能),而是依赖它所需要的接口。
2.对接口的污染:
3.对于接口的污染,考虑两条处理方式:① 利用委托分离接口;② 利用多继承分离接口。
2.1.3-开放-封闭原则 OCP
1. 此原则能够提高系统的可扩展性和可维护性。
→(案例-播放器)
2. 此原则的核心思想是 对抽象编程,而不对具体编程,因为抽象相对稳定。
3. 如何遵守开放-封闭原则
① 在设计方面充分应用“抽象”和“封装”的思想
② 在系统功能编程实现方面应用接口interface的编程
2.1.4-(里氏)替换原则 LSP
2.1.5-依赖倒置原则 DIP
1. 将依赖关系倒置为依赖接口,抽象不能依赖于具体,具体应该要依赖于抽象。
2. 如何满足DIP:
每个较高层次类都为它所需要的服务提出一个接口声明,较低层次类实现这个接口。
每个高层类都通过该抽象接口使用服务。
1.抛出和捕获异常:
2.PHP基本异常类:
(代码10.1-exception.php)
10.2.简单工厂模式:(代码10.2-FactorPattern.php)
10.3.单例模式:(代码10.3-SingletonPattern.php)
10.4.观察者模式:(10.4-ObserverPattern.php)
10.5 命令模式:(10.5-CommandPattern.php)
10.6 策略模式 (10.6-StrategyPattern.php)
10.7 MVC模式
【代码】【代码】https://github.com/rxbook/study-php-object/tree/master/code05