第1章 php与面向对象编程
- 把一个问题分解为小的问题,这个过程就是模块化过程。
- 面向对象编程的首要原则之一:单一责任原则,这表示一个类应当只有一个责任。
第2章 OOP基本概念
- OOP(object-oriented programming):面向对象编程
2.1抽象
- 抽象 指示一个对象的基本特征,使它与其他对象区分开,从而从查看者的角度提供了清晰定义的概念边界。
- 抽象是用来处理复杂性的主要工具。一个问题越复杂,就越需要抽象来解决。
2.1.1抽象类
- 抽象类不能实例化,只能由具体类(也就是可以实例化的类)继承抽象类的接口以及它的所有具体属性。
- 接口的核心部分由类中操作(函数)定义的所以签名组成。签名包括一个操作的操作名和参数。
- 一个抽象函数,可以只包含接口,而不包含其他任何内容。
- 如果一个类至少有一个抽象方法,它必然是一个抽象类。不过,抽象类也可以有具体方法。
- 属性是指变量和常量(抽象数据),而方法是指函数(对数据的操作)。
- 如果在一个抽象类中声明了一个抽象方法,那么继承这个父类的各个子类中都必须实现这个方法。
- 抽象类可以根据需求增加具体方法和属性。另外,抽象类也可以只包含具体方法。
2.1.2接口
- 接口:在抽象类中不包含具体方法或变量。
- 只要保证实现了接口中的所有方法,就可以根据需求增加更多其他的方法和属性。
- 接口中不包含变量,但是可以包含常量。
- 接口中也可以只包含常量而不包括任何方法。通过使用接口名、作用域解析操作符(::)和常量名,可以将这些常量值传递到类属性。
- 指定数据类型为接口而不是一个具体实现。
2.2封装
- 封装就是划分一个抽象的诸多元素的过程,这些元素构成该抽象的结构和行为;封装的作用就是将抽象的契约接口与其实现分离。
- 把一个复杂的大问题模块化为多个可解决的子问题,就可以利用封装来得到这些较小的抽象,并对它们完成划分。
- 用户界面(User Interface):UI
- 信息隐藏:指一个模块的细节可能是隐藏的,只能通过适当的访问渠道来使用这个模块,而不能利用这个模块的细节。
- 可见性是指对类属性的存取(或访问)。PHP使用3种类型的可见性:private(私有)、protected(保护)和public(公共)。
- 设计模式的目的是建立对象之间的通信链路。保持封装同时保持对象(类)之间通信的过程是设计模式的一个工作。
2.3继承
- 继承:一个类如果扩展了另一个类,就会拥有这个类的所有属性和方法。
- 继承有助于为程序中包含的不同类建立一种结构。为了保证类之间的松绑定,通常会继承抽象类,而且是浅继承,只有一层子类。
2.4多态
- 多态:指多种形态。价值在于,可以调用有相同接口的对象来完成不同的工作。
第3章 基本设计模式概念
- MVC的重要性还在于它展示了松耦合而不是直接调用功能。通过分离不同的元素(或参与者)来完成一个任务,MVC可以提供大型程序所需的灵活性。
- MVC的特点为:通过在视图和模型之间建立一个订购/通知协议,实现视图和模型的解耦合。
3.2设计模式基本原则
- 第一个原则:按接口而不是按实现来编程。要将变量设置为一个抽象类或接口数据类型的实例,而不是一个具体实现的实例。这可以将设计与实现解耦合。
- 类型提升可以帮助你尽可能遵守第一个设计模式原则,即按接口而不是按实现来编程。
- 第二个原则:应当优先选择对象组合而不是类继承。
- 设计模式中的组合通常是指模式中一个参与者内部的组合。
- 在较大的程序中,组合可以避免维护多个继承层面上的各个子类,而且还可以避免可能导致的错误。
3.3设计模式作为备忘录
- 设计模式的作用可以分为3大类:创建型、结构型、行为型。
- 创建型模式就是用来创建对象的模式。
- 结构型模式关心的是组合结构应当保证结构化。
- 行为型模式的核心是算法和对象之间的职责的分配。
第4章 结合使用设计模式和UML
- 类图提供了一个设计模式视图,从中很容易看出UML描述的关系。
- 相似关系是指一个参与者包含另一个参与者的引用。
- 聚合关系表示一个聚合对象与它的所有者有相同的生命周期。
- 继承和实现关系:使用“三角形”记法。
- 创建关系:一个对象创建另一个对象的实例时,采用的记法时一条虚线。
- 多重关系:相似或聚合关系的箭头末端有一个圆球。
- 对象图提供了另一种表示方法,可以查看一个设计模式特定实现以及通过这个模式生成的对象之间的关系。对象图可以清楚地表明对象关系。对象图只显示实例,箭头则指示所引用的对象。