ps:以下内容均为《PHP设计模式》的阅读笔记,只做了概括,想了解详情可以去查看此书。谢谢阅读哈。
一、OOP的思想
1、抽象类(abstract)
(1)抽象指示一个对象的基本特征,使它与其他对象区分开来,从而从查看者的角度提供了清晰定义的概念边界。
(2)如果在一个抽象类中声明了一个抽象方法,那么继承这个父类的各个子类中都必须实现这个方法。换种角度来看,抽象类中的方法可以看做一个合约,强制所有的子类继承,即遵循同样的标准。
2、接口(interface)
(1)与大多数抽象类一样,接口也有抽象方法,不过,不能像在抽象类中那样在接口中包含具体方法或变量。
以下是一个简单的接口示例:
<?php
interface IMethodHolder{
public function getInfo($info);
public function setInfo($info);
public function calculate($a , $b);
}
?>
(2)类型提示
提供类型提示的基本格式如下: function doWork(TypeInt $somevar) ....
类型提示必须是类或接口的名字,在设计模式中更倾向于使用抽象类或接口,因为它不会绑定一个具体实现的类型,而只是限制了结构,可以建立一个宽松而明确的绑定。这样做的好处是随着程序变得越来越大,只要遵循接口,就可以做任何改变而不会对程序造成破坏,所做的修改也不会和具体的实现纠缠不清。
3、继承
继承有助于程序中的不同类建立一种结构,不过为了保证类之间的松绑定,通常会继承抽象类或接口,而且是浅继承,只有一层子类。如果程序通过深层次继承绑定到具体类,即使对父类简单的修改,也会对子类带来严重的破坏。
4、总结
从某种程度上来讲,设计模式的目的就是建立对象之间的通信链路;很多所谓的OOP并没有正确的使用获取方法(getters)和设置方法(setters),允许公开访问获取方法和设置方法只会破坏封装。保持封装同时保持对象之间通信是设计模式的一个重要工作,要找出一种方法来建立通信,同时不破坏封装,这是设计模式的基本目的。