设计模式
设计模式
沉浮一湘蕉
心若沉浮,浅笑安然。
展开
-
设计模式-----适配器模式(Adapter Pattern)
1.定义「适配器模式」将一个类的接口转换成客户希望的另外一个接口,使得原本不兼容的接口一起工作。2.UML类图3.代码实现#include <iostream>#include <string>using namespace std;class Player{public: string name; Player(string name) { this->name=name; } virtual void attack()=0原创 2022-04-18 20:29:37 · 157 阅读 · 0 评论 -
设计模式-----单例(Singleton)模式
1.定义单例模式:保证一个类只有一个实例,并且提供一个访问它的全局访问点。2.UML类图3.代码实现饿汉与懒汉的区别前者在类装载时就实例化,后者只有在第一次被使用时才实例化。 (饿汉的优点是避免线程同步问题,缺点是即使没用到这个实例还是会加载) (懒汉的优点是实现了懒加载,但需要解决线程安全问题!)1> 饿汉式,没有实现懒加载~public class Singleton() { private static Singleton instance = new原创 2022-04-18 20:18:31 · 158 阅读 · 0 评论 -
设计模式-----观察者模式(Publish/Subscribe)
1.定义观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。2.UML类图3.代码实现#include <iostream>#include <string>#include <list>using namespace std;class Subject;class Observer{protected: string name原创 2022-04-18 19:52:57 · 193 阅读 · 0 评论 -
设计模式-----模板方法(Template Method)模式
1.定义模板方法模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。2.UML类图3.代码实现#include <iostream>#include <string>using namespace std;class TestPaper{public: void question1() { cout << "1+1=" <&原创 2022-04-18 19:39:58 · 350 阅读 · 0 评论 -
设计模式-----代理模式(Proxy)
1.定义代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。2.UML类图3.代码实现#include <iostream>#include <string>using namespace std;class SchoolGirl{public: string name;};class IGiveGift{public: virtual void giveDolls原创 2022-04-18 19:22:41 · 290 阅读 · 0 评论 -
设计模式-----装饰模式 (Decorator)
1.定义装饰模式是一种结构型设计模式,动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式相比生成子类更为灵活。2.UML类图3.代码实现#include <string>#include <iostream>using namespace std;class Person{private: string m_strName;public: Person(string strName) { m_strName = strNam原创 2022-04-18 19:04:49 · 159 阅读 · 0 评论 -
设计模式-----策略模式(Strategy)
1.定义定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式包含三个角色:(1)Strategy:抽象策略,给出所有的具体策略类所需的接口,定义一个公共接口给所有支持的算法。Context使用这个接口调用ConcreteStrategy定义的算法。(2)ConcreteStrategy:具体策略,调用Strategy接口实现具体算法。(3)Context:上下文(环境),用ConcreteStrategy对象配置执行环境,持有一个Strat原创 2022-04-18 16:30:20 · 428 阅读 · 0 评论 -
设计模式-----抽象工厂模式(Abstract Factory)
1.定义:抽象工厂模式是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。2.UML类图3.代码实现#include <iostream>#include <string>using namespace std;class IUser{public: virtua原创 2022-04-18 16:13:40 · 134 阅读 · 0 评论 -
设计模式-----工厂方法模式(Factory Method)
1.定义:工厂方法模式定义了一个用于创建对象的接口,让子类决定要实例化哪一个类,也就是说工厂模式让实例化推迟到子类。2.UML类图3.代码实现#include <iostream>#include <string>using namespace std;class Operation{public: double numberA, numberB; virtual double getResult() { return 0;..原创 2022-04-18 15:57:04 · 362 阅读 · 0 评论 -
设计模式-----简单工厂模式(SimpleFactoryPattern)
1.简单工厂定义简单工厂模式(Simple Factroy Pattern):定义一个工厂类,它可以根据参数的不同返回不同的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。2.UML类Factory (工厂角色):工厂角色即工厂类,它是简单工厂模式的核心,负责实现创建所有产品实例的内部逻辑;工厂类可以被外界直接调用,创建所需的产品对象; 在工厂类中原创 2022-04-18 15:34:00 · 215 阅读 · 0 评论 -
设计模式大纲
原创 2022-04-18 10:56:27 · 216 阅读 · 0 评论