设计模式
文章平均质量分 80
学习记录
古路
这个作者很懒,什么都没留下…
展开
-
C++回调函数理解
看了一些介绍感觉太官方了,我的简单理解就是从模式设计思想出发,回调函数的目的就是为了将变化的模块抽离出来,延迟实现;这里还有一种方法可以避免这样的问题,可以把非static的回调函数 包装为另一个static函数,这种方式也是一种应用比较广的方法。但这种实现有一个很明显的缺点:static 函数不能访问非static 成员变量或函数,会严重限制回调函数可以实现的功能。简而言之,std::funtion是定义函数类型(输入、输出),std::bind是绑定特定的函数(具体的要调用的函数)。原创 2023-05-27 00:01:39 · 984 阅读 · 0 评论 -
带参数的反射工厂模式
普通的反射工厂模式无法传入参数,工厂为单例模式。原创 2022-12-11 02:32:49 · 142 阅读 · 0 评论 -
工厂模式学习
在这个示例中,我们定义了一个抽象类 Product,表示产品的基类,它定义了一个抽象函数 use,用于表示产品的使用方法。在这个示例中,我们定义了一个基类 Base,并定义了两个子类 A 和 B,它们都实现了 print 方法。在这个示例中,我们使用了 C++ 中的反射机制,即在运行时通过类名来查找并调用相应的创建函数,从而实现了动态创建对象的功能。接下来,我们定义了一个工厂类 Factory,它提供了一个静态成员函数 createProduct,用于根据产品名称返回相应的产品对象。承接上一篇我的需求。原创 2022-12-10 02:36:22 · 175 阅读 · 0 评论 -
策略模式学习
最近想整理一下代码。我的想法是使用继承的方案,使用多态写一个interface,然后不同的方法来继承它。最近ChatGPT比较火,顺便问了一下它:它推荐的是策略模式,我也觉得很适合我的使用场景,因此在此处记录一下它的回答,并未整理,以作后续参考。这个问题的答案取决于您的具体要求。但是,如果您想要能够随时更改计算平均值的方法,那么您可以使用策略模式来设计您的代码。策略模式允许将算法封装到独立的类中,并通过组合来使用它们。这使您可以在运行时更改算法,而无需修改原始代码。例如,您可以在您的代码中定义一个名为 的原创 2022-12-08 12:41:59 · 464 阅读 · 0 评论 -
UML类图关系及其对应代码
UML类图关系及其对应代码0.引言1.UML类图关系总览2.依赖关系3.关联关系4.聚合、组合关系——关联关系的两种形式5.继承(泛化)关系6.最后总结0.引言该博客写得非常好,大部分转载自该博客,以防备忘,同时加了点内容并用C++表示了一下,全都是重复造轮子,厚着脸皮标原创吧。ref01.UML中泛化 , 实现 , 关联, 聚合, 组合, 依赖ref02.UML类图符号 各种关系说明以及举例1.UML类图关系总览文字解释下各个类及关系类含义及关系Food类食物类原创 2021-10-15 21:22:01 · 3829 阅读 · 1 评论 -
面向对象设计原则
设计原则0.引言1.设计原则1.1.依赖倒置原则( DIP)1.2.开放封闭原则( OCP)1.3.单一职责原则( SRP)1.4.Liskov 替换原则( LSP)1.5.接口隔离原则( ISP)1.6.优先使用对象组合,而不是类继承1.7.封装变化点1.8.针对接口编程,而不是针对实现编程2. 设计原则要求3.将设计原则提升为设计经验0.引言文章是重复造轮子,记笔记给自己看,勿喷。ref01.六大设计原则超详细介绍ref02.设计模式与设计原则简介ref03.设计原则总结重新认识面向对象原创 2021-10-15 19:50:14 · 237 阅读 · 0 评论