读《深入PHP 面向对象、模式与实践》笔记

1. include() 和require() 语句的不同在于它们如何处理错误。使用require()调用文件发生错误时,将会停止整个程序;调用include()时遇到相同的错误,则会生成警告并停止执行包含文件,跳出调用代码然后继续执行。require()和require_once()用于包含库文件时更加安全,而include()和include_once()则适用于加载模板这样的操作。

2. 多态或称"类切换"是面向对象系统的基本特性之一。多态是指在一个公用接口后面维护多个实现。要特别注意的是多态并没有消除条件语句。想ParamHandler::getInstance()在这样的方法,经常通过switch或if语句决定返回的对象,但多态可以把条件代码集中在一个地方。

就想我们看到的那样,PHP强制接口由抽象类定义。这非常有用,因为我们可以确定子类将会实现抽象父类中定义的所有方法,包括类类型提示和方法的访问控制。客户端代码因此可以使用一个公共父类的任意子类而不需要改写代码(只要客户端代码仅依赖于父类中定义的功能)。这个规则唯一的遗憾是:无法强制规定类方法返回的数据类型。

3.简单来说, 封装就是对客户端 代码隐藏数据和功能。封装也是面向对象的重要概念之一。

4. 在设计阶段,让大脑空白一段时间会给你带来意想不到的好处。请清空脑海中这些和细节相关的念头。

5. “四人组”在《设计模式》一书中用一句话总结了这个规则-"为接口而不是实现而编程"(Program to an interface,not a implementation).这是一句值得摘录到你的笔记本的话。

6. Martin Fowler著的《企业应用架构测试》及Alur 等人著的《J2EE核心模式》。如果你认为本章(第12章)有用的话,我推荐你也深入学习这两本书。即使你不懂Java,作为一个面向对象的PHP程序员,你也可以从中找到合适的例子来学习。

从12章开始,快速浏览了一遍,2017-05-11 21:30分看完。

原文地址:https://www.cnblogs.com/fsong/p/6786631.html