![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
哞哞哞咩咩咩
记录日常学习
展开
-
5.桥模式
两个方向互不干扰。corp和Product是业务功能,HouseCorp, ShanZhaiCorp,House,IPod是平台实现。原创 2020-11-03 16:35:14 · 64 阅读 · 0 评论 -
4.装饰模式
定义:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更灵活 优点:(1)装饰类和被装饰类可以独立发展,而不会相互耦合。(2)装饰模式是继承关系的一个替代方案。(3)装饰模式可以动态地扩展一个实现类的功能。 缺点:对于装饰模式记住一点就足够了:多层的装饰是比较复杂的。 1.Component是一个接口或者是抽象类,就是定义我们最核心的对象,也就是最原始的对象。 2.ConcreteComponent是最核心、最原始、最基本的接口或抽象类的实现,你要装饰的对象 3.Decorator原创 2020-10-30 16:44:07 · 70 阅读 · 0 评论 -
3.观察者模式
定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知自动更新。 被观察者:它必须能够动态地增加,取消观察者。它一般是抽象类或者实现类,仅仅完成作为被观察者必须实现的职责:管理观察者并通知观察者。 观察者:观察者接收到消息后,即进行update,对接收的消息进行处理 具体的被观察者:定义被观察者自己的业务逻辑,同时定义对哪些事件进行通知 具体的观察者:每个观察者在接收到消息后的处理反应是不同的,各个观察者有自己的处理逻辑。 参考文章 #include <iostre原创 2020-10-30 14:14:38 · 80 阅读 · 0 评论 -
2.策略模式
定义一组算法,将每个算法封装起来,并且使他们之间可以互换。 #include <iostream> using namespace std; //************************************************************** //飞行行为,用抽象类表示 class FlyBehavior{ public: virtual ~FlyBehavior() {}; virtual void fly() = 0; }; //实现飞行行为的方法类原创 2020-10-29 16:27:46 · 73 阅读 · 0 评论 -
1.模板方法模式
晚绑定机制:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 #include<iostream> #include<string> #include<fstream> using namespace std; class HummerModel { public: virtual void start() {} virtual void stop() {} virtual void alarm原创 2020-10-29 11:39:41 · 80 阅读 · 0 评论