
设计模式
LittlBee
这个作者很懒,什么都没留下…
展开
-
设计模式三、模板方法模式
模板方法模式的定义如下: 定义一个算法的框架,而将一些步骤延迟到子类中。使得子类在不改变算法结构情况下,就可以重新定义该算法的某些特定步骤。 #include <iostream> class CarModel{ public: //定义存在的基本方法 virtual void start() = 0; virtual void stop() = 0; virtual void alarm() = 0; //定义模板方法 void run原创 2021-12-21 20:34:35 · 153 阅读 · 0 评论 -
设计模式二、简单工厂,工厂方法和抽象工厂模式
1、简单工厂模式 简单工厂模式的特点是只有一个工厂,根据输入的条件不同,实例化不同的类。 #include <iostream> class AbstractProduct{ public: virtual void doSomething() = 0; }; class ProductA : public AbstractProduct{ public: virtual void doSomething(){ std::cout << "P原创 2021-09-30 16:35:50 · 94 阅读 · 0 评论 -
设计模式一、单例模式
单例模式简单来说对于一个类,只有一个实例。 优点:只有一个实例,减少了内存的开支;不需要频繁的创建销毁实例,减少了系统消耗;优化了对资源的访问和共享,例如,写一个文件,避免的同时写的问题等。 缺点:不利于扩展;可能内部逻辑和职责比较复杂,与单一职责原则有冲突。 使用场景:可以用于生成全局唯一id;提供共享访问数据;如果类占用的系统资源多时,由于只有一个实例,可以节省系统资源等。 注意事项:单例模式在并发场景下,需要考虑线程安全问题。 推荐实现方式:(局部静态变量模式) #include &原创 2021-09-24 17:11:52 · 93 阅读 · 0 评论 -
6大设计原则小结
目录 1.单一职责原则 2.里氏替换原则 3.依赖倒置原则 4.接口隔离原则 5.迪米特法则(最少知识原则) 6.开闭原则 1.单一职责原则 一个类有且仅有一个职责(但是职责的定义很广泛,可以根据实际进行细分)。比如,我们需要维护我们的用户信息,则可以分为2个职责:用户信息的存储;用户信息的修改删除等动作。 2.里氏替换原则 主要有以下几点要求 子类必须完全实现父类的方法 子类可以有自己的个性 覆盖或实现父类方法时,输入参数可以放大——子类中重载的方法,参数必须是父类参数的类型或者原创 2021-09-23 11:28:41 · 81 阅读 · 0 评论