设计模式
文章平均质量分 90
软件设计与体系结构
hello world 999
日拱一卒无有尽,功不唐捐终到海,十年磨一剑,再见顶峰相见。
展开
-
【设计模式】01:类间关系
类之间的关系强弱顺序:继承(泛化) > 组合 > 聚合 > 关联 > 依赖(使用最强的关系描述即可)关联和聚合的区别主要在于语义上:关联的两个对象之间一般是平等的,聚合则一般是不平等的。聚合和组合的区别则在语义和实现上都有差别:组合的两个对象之间生命周期有很大关联,被组合的对象在组合对象创建的同时或者创建之后创建在组合对象销毁之前销毁,聚合则无需考虑这些事情。一般被组合对象不能脱离组合对象独立存在,而且也只能属于一个组合对象,聚合则不一样,被聚合的对象可以属于多个聚合对象。原创 2023-07-20 16:37:21 · 172 阅读 · 0 评论 -
【设计模式】02:面向对象设计原则
关于这个原理的应用其实也很常见,比如在 Qt 中,所有窗口类型的类的构造函数都有一个 QWidget* 类型的参数(QWidget 类是所有窗口的基类),通过这个参数指定当前窗口的父对象。虽然参数是窗口类的基类类型,但是我们在给其指定实参的大多数时候,指定的都是子类的对象,其实也就是相当于使用子类类型替换掉了它们的父类类型。该原则是程序设计的一种理想模式,在很多情况下无法做到完全的封闭,因此需要在这些位置创建抽象类来隔离以后发生的这些同类变化(多态的应用,创建新的子类并重写父类虚函数,用以更新处理动作)。原创 2023-07-20 16:44:07 · 89 阅读 · 0 评论 -
【设计模式】03:单例模式
项目全局范围内,某个类的实例有且仅有一个,通过这个实例向其他模块提供数据的全局访问,这种模式就叫单例模式。单例模式的典型应用就是任务队列。使用单例模式来替代全局变量(对全局变量进行管理),直接使用全局变量会破坏类的封装(全局变量随意读写),通过单例模式的类提供的成员函数进行访问。单例模式缺点:扩展困难:单例模式中没有抽象层,因此扩展困难,不适用于变化的对象:如果同类型的对象总是要在不同的用例场景发生变化,单例就会引起数据错误,不能保存状态。原创 2023-11-27 17:12:32 · 1142 阅读 · 0 评论