桥接模式

作者: yummy觉一 | 来源:发表于2019-09-25 09:07 被阅读0次

    对《大话设计模式》的学习总结,以备后用。

    继承关系存在的问题

    很多情况下,使用继承会带来麻烦,比如,对象的集成关系在编译时就已经定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系,以致于父类实现中的任何变化,必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重新或被其他更适合的类替换,这种依赖关系限制了灵活性并最终限制了复用性。

    合成/聚合复用原则

    尽量使用合成/聚合,尽量少使用类继承
    优先使用对象的合成、聚合,将有助于你保持每个类被封装,并被集中在单个任务上,这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物。

    合成、聚合都是关联关系的特殊种类。聚合标识一种弱的拥有关系,体现了A对象可以包含B对象,但B对象不是A对象的一部分;合成则是一种强的拥有关系,体现了严格的整体与部分的关系,整体和部分的生命周期一样。
    比如:大雁有两个翅膀,大雁和翅膀是整体与部分的关系,属于合成关系;大雁是群聚动物,每只大雁都属于一个雁群,一个雁群可以有多个大雁,属于聚合关系。附一张UML截图


    uml-大雁-雁群-翅膀.png
    桥接模式

    将抽象部分与它的实现部分分离,使它们可以独立的变化
    实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。
    多交单据分类后采用聚合、合成的关系进行组装。

    桥接模式的UML
    uml-桥接模式.png

    相关文章

      网友评论

        本文标题:桥接模式

        本文链接:https://www.haomeiwen.com/subject/bunhuctx.html