面向对象的继承与组合

面向对象的优势在于类的复用.继承与多态都是对类进行复用,它们是一个类级别的复用,一个是方法级别的复用.提到继承必提组合,二者有何异同?PHP到底有没有多态?若没有,则为什么没有?有的话,和其他语言中的多态又有什么区别?

 
继承和组合都是提高代码可重用性的手段.在设计模型时,可以按照语言识别类之间的组合关系和继承关系.
 
从方法复用的角度考虑,如果两个类中有很多相同的代码和方法,可以从这两个类中抽象出一个父亲,提供公共方法,然后两个类作为子类,提供个性方法.
这时继承语义更好.
 
而组合就没有这么多限制.组合之间的类可以关系(体现为代码复用)很小,甚至没有关系.
然而在编程中,继承与组合的取舍往往并不是那么直接明了,无法决定应该是继承还是组合.有什么标准吗?有的,这个标准就是低耦合.
 
耦合是一个软件结构内不同模块之间互连程度的度量,也就是不同模块之间的依赖关系.
 
低耦合批模块与模块之间,尽可能地使模块间独立存在;模块与模块之间的接口尽量少而简单.
 
解耦就是要解除模块与模块之间的依赖.
原文地址:https://www.cnblogs.com/chenqionghe/p/4735710.html