摘要:
1、复合优先于继承 1.1 继承是实现代码重用的有力手段,但不总是完成这项工作的最佳工具。包的内部继承加上文档说明在一个程序员的控制下是非常安全的但是越包边界的继承,则是很危险的。造成子类脆弱性的原因是,父类在后续版本获得新的方法,子类很有可能调用旧的方法。 1.2 为了解决上面的问题,可以考虑采用“复合”的方式,在一个新类中增加一个私有对象,通过构造函数传入,为了更加灵活,可以让他的类型为接口(比如Set,那么它可以接受TreeSet,HashSet等)。 1.3 如果让类B扩展类A,满足每一个B确实是A,则采用继承,否则采用复合模式。 1.4 继承机制的功能非常强大,但是也存在很多问题.. 阅读全文