很多情况用继承会带来麻烦,对象的继承关系是在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与他的父类有非常紧密的依赖关系,以至于父类视线中的任何变化必然会导致子类发生变化。当你需要服用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这种依赖的关系限制了灵活性并最终限制了复用性。
合成聚合复用原则:尽量使用合成聚合,尽量不要使用类继承。、
优先使用对象的对象的合成聚合将有助于你保持每个类被封装,并被集中在单个任务上,这样类和类继承层次会保持较小规模,并且不太可能增长为不可控值的庞然大物。
桥接模式:将抽象部分与他的实现部分分离,使他们都可以独立的变化。
理解一下:什么是抽象与他的实现分离,这并不是说,让抽象与其派生类分离,因为这没有任何意义。实现质的是抽象类和他的派生类用来实现自己的对象。
实现系统可能有多角度分类,每一种分类都有可能变化,呢么就把这种多角度分离分离出来让他们独立变化,减少他们之间的耦合。
只要真正深入的理解了设计原则,很多设计模式其实就是原则的应用而已,或许在不知不觉中就在使用设计模式了。
桥接模式:桥接模式就是将原本多层继承导致代码复杂的问题,转换成合成聚合复用原则将两个类进行合成聚合,是各个父类变成同一层。