注意:如果不想浪费时间,请一定要点我。
定义
合成复用原则,要求在软件复用时,要先尽量使用组合或者聚合等关联关系实现,其次才考虑使用继承。也就是在一个新对象里通过关联的方式使用已有对象的一些方法和功能。重要性
通常类的复用可以分为继承和合成,继承复用虽然简单,但是存在很大的缺点:
(1)耦合度高,父类代码的修改会影响到子类,不利于代码的维护。
(2)破坏了类的封装性,因为继承会将父类的实现细节暴露给子类,所以又叫做 "白箱" 复用。
(3)限制了复用的灵活性,从父类继承来的实现是静态的,在运行期是无法改变的。
合成复用是将已有的对象作为新对象的成员对象来实现,新对象调用已有对象的功能,达到复用:
(1)不会破坏封装性,因为新对象只能调用已有对象暴露出来的方法,所以又叫做 "黑箱" 复用
(2)耦合度低,已有对象的变化对新对象的影响较小,可以在新对象的中,根据需要调用已有对象的一些操作。
(3)复用的灵活性高,可以在代码的运行中,动态选择相同类型的其他具体类。