设计模式
、、、、南山小雨、、、、
秋风吹湘水,落叶满南山.
展开
-
状态模式实现
#include <iostream> #include <string.h> using namespace std; //状态模式:当一个对象的数据成员改变时(状态改变) //这个对象调用自己同一个方法时,会根据状态的改变 //该方法的实现有所不同 class War; //状态基类 class Status { public: virtual void Prophase(War* war){} virtual void Metaphase(War* war...原创 2020-07-11 17:10:41 · 226 阅读 · 0 评论 -
适配器模式
学了C++基本的语法都知道继承可以让子类拥有更多的功能,除了继承还有组合,委托,也能让一个类的功能增加。设计模式,这个设计是设计继承,组合,委托,之间相互叠加的方式,让其符合业务需求。 适配器要完场什么业务呢? 假如有个一类A,一个类B,类A想调用类B的函数。让类A包含类B的对象指针作为A的数据成员即可,现在的问题是,业务不允许改变类A。那么我们让类A派生一个子类C,这个子类中包含类B的对象指针作为A的数据成员,问题就解决了。把类C new出来实例指针赋值给类A定义的对象指针,那么类A就可...原创 2020-07-11 17:08:59 · 174 阅读 · 0 评论 -
策略模式实现
学了C++基本的语法都知道继承可以让子类拥有更多的功能,除了继承还有组合,委托,也能让一个类的功能增加。设计模式,这个设计是设计继承,组合,委托,之间相互叠加的方式,让其符合业务需求。 策略模式是继承和委托的结合,它可以像是创建性模式,因为它像工厂一样创建对象;它也像行为型模式,因为这些创建的对象最终要完成动作(调用函数)。 看到这,我认为你已经看了上节的观察者模式,那么这个对你来说很容易理解,因为太像了,都是对委托的运用,不同的是主题要通知每个观察者,而策略模式,会根据用户的需求,选择调...原创 2020-07-11 16:53:24 · 205 阅读 · 0 评论 -
观察者模式
如果你能理解委托,那么观察者模式对你来说很简单。委托,就是在一个类A里包含另一个类B的对象的指针作为本类的数据成员。因此此类A就有了调用类B里函数成员的能力。观察者模式的本质就是托管。在代码中可以清楚看到这些。下面的案例中主体(相当类A)添加了list链表来存储多个来自观察者类(相当于类B)的对象实例的指针。 这些代码都是在学习这些的过程中码的。。。。。 上代码,亲测有效! #include <iostream> #include <string> #incl...原创 2020-07-11 16:30:52 · 224 阅读 · 0 评论 -
工厂方法模式
看到这,我认为你已经看过上节的简单工厂模式了,那么这节对你来说将很easy~~~,只需要了解开闭原则的概念即可。 工厂方法模式是对简单工厂模式的一种改进,因为在简单工厂模式违反了开闭原则,如果你想新生产一个产品,需要修改工厂内的方法。而开闭原则告诉我们,如果要增加新功能,尽量用增加代码而不是修改代码的方式,这样会减少对其他功能的错误修改。场景:相对于简单工厂,现在把工厂也抽象为一个抽象类,然后派生子类,想新生产一个产品就派上一个新类,让它来完成对产品的new实例化,这就符合开闭原则。其他无...原创 2020-07-11 16:10:16 · 178 阅读 · 0 评论 -
简单工厂模式
工厂模式是一种创建型设计模式,这个创建指的是new一个类的实例,返回它的指针给用户。这个有一定C++基础,知道多态即可。场景:设置一个处理器抽象类,类A和类B都是他的具体实现子类。在工程中用着两个类分别new实例,根据用户调用的接口选择返回哪一个实例的指针。 这些代码都是在学习这些的过程中码的。。。。。 上代码,亲测有效! #include <iostream> #include <string> using namespace std; //情景:一工厂可...原创 2020-07-11 15:55:52 · 158 阅读 · 0 评论