• 大话设计模式之类与类之间的关系读后感


    引言:让我们重温经典,致敬经典

    类与类之间的关系有四种:1.关联关系 2.依赖关系 3.组合(合成)关系 4.聚合关系

    我们日常的开发中肯定会用到类,但是类和类之间的关系who care,反正我可以开发,但是知道他们之间会让你写出更具美感的代码。代码是一种艺术!

    1.关联关系:当一个类‘知道’另一类的时候,可以用关联关系

    栗子:好比代理模式中的代理者和被代理者,他们就是关联关系。代理者需要知道被代理者。再好比,大雁(类)需要知道气候(类),这也是关联关系。

    2.依赖关系:当一个类需要依赖另一类的时候,他们之间是依赖关系

    栗子:好比简单工厂模式,工厂类和各个产品子类是依赖关系,工厂方法模式中,各个产品工厂和与之对应的产品类是依赖关系,再好比人和氧气是依赖关系。

    3.组合(合成)关系:是一种强的拥有关系,体现了严格的部分和整体的关系。生命周期是一样的。

    栗子:好比策略模式中的context和strategy类,他们就是组合关系,表现为一个类初始化的时候,类中的引用对象也需要初始化,好比装饰者模式中的Comonent和Decorator,再好比鸟和翅膀他们也是组合关系,如果鸟死了,翅膀的生命周期也结束了。反之鸟出生的时候,翅膀也存在。

    4.聚合关系:表现一种弱的拥有关系,体现在A对象可以包含B对象,但是B对象不是A对象的一部分。

    栗子:大雁和雁群,雁群中可以包含大雁,但是大雁不是雁群中的一部分,或者一个类中引用另一个类,但是这个类初始化的时候,另一个类并不需要实例化,只是在需要到这个引用类的时候才初始化。

    最后:如果说的不对的地方,欢迎指正,谢谢!勿喷~

  • 相关阅读:
    return和yield的区别
    基本装饰器
    javascript实例:两种方式实现tab栏选项卡
    javascript实例:路由的跳转
    javascript实例:点亮灯泡
    标签页QTabWidget
    主窗口QMainWindow和启动画面
    各种对话框
    列表视图QlistView
    拆分窗口QSplitter
  • 原文地址:https://www.cnblogs.com/zfding/p/8688813.html
Copyright © 2020-2023  润新知