
设计模式
jadeshu
这个作者很懒,什么都没留下…
展开
-
设计模式总结
名称 中文名称 意图 创建型模式 Abstract Factory 抽象工厂 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。(别名:Kit) Builder 生成器 ...原创 2020-04-08 23:11:12 · 137 阅读 · 0 评论 -
状态模式
状态模式 概述 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 适用性 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。 2.一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。 这个状态通常用一个或多个枚举常量表示。 通常,有多个...原创 2020-04-13 21:23:27 · 261 阅读 · 0 评论 -
模板方法模式
定义一个操作中的算法骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不 改变一个算法的接口即可重定义改算法的某些特定步骤。 实例 #include <iostream> using namespace std; class Base { public: Base(/* args */) {} virtual ~Base() {} ...原创 2020-04-08 23:58:34 · 506 阅读 · 0 评论 -
策略模式
C++设计模式全篇 含有许多条件判断语句的代码通常都需要Strategy模式!!! 如果Strategy对象没有实例变量,那么上下文可以共享同一个Strategy对象,可以节省对象开销! #include <iostream> using namespace std; class strategy { public: virtual void Algorithm...原创 2014-03-14 21:47:18 · 441 阅读 · 0 评论 -
观察者模式
C++代码: #include <string> #include <iostream> #include <list> using namespace std; // 观察者模式 // 观察者 class Observer { public: virtual void Update(int value) = 0; }; // 目标者 clas...原创 2019-01-21 19:58:33 · 286 阅读 · 0 评论 -
代理模式
概述 为其他对象提供一种代理以控制对这个对象的访问。 适用性 1.远程代理(RemoteProxy)为一个对象在不同的地址空间提供局部代表。 2.虚代理(VirtualProxy)根据需要创建开销很大的对象。 3.保护代理(ProtectionProxy)控制对原始对象的访问。 4.智能指引(SmartReference)取代了简单的指针...原创 2020-04-13 21:52:44 · 152 阅读 · 0 评论 -
组合模式
适用于:单个对象和组合对象的使用具有一致性,将对象组合成树形结构以表示“部分-整体”。 Component(树形结构的节点抽象) ---为所有的对象定义统一的接口(公共属性,行为等定义) ---提供管理子节点对象的接口方法 ---【可选】提供管理父节点对象的接口方法 Leaf(树形结构的叶节点)Component的实现子类 Composite(树形结构的支节点)Componen...原创 2020-04-06 22:47:29 · 171 阅读 · 0 评论 -
适配器模式
适配器模式实例:将220V电压转换为36V电压,中间加了适配器即可 // 适配器模式 // 将220V电压转换为36V电压实例 #include <iostream> using namespace std; // 需要转换的对象 class CPower220 { public: CPower220(/* args */) {} virtual ~CPower2...原创 2020-04-07 21:35:40 · 179 阅读 · 0 评论 -
原型模式
C++代码 #include <iostream> using namespace std; class CPrototype { public: virtual CPrototype* Clone() = 0; virtual ~CPrototype(){} }; class CPtypeA : public CPrototype { public: CPtype...原创 2020-04-06 01:51:37 · 189 阅读 · 0 评论 -
抽象工厂模式
工厂模式:只能生产一个产品(单一产品,具体什么工厂就生产什么产品)https://blog.youkuaiyun.com/jadeshu/article/details/23215933 抽象工厂:可以生产一个产品族(里面有很多产品组成) 1.C++代码: #include <string> #include <iostream> using namespa...原创 2019-01-21 17:57:42 · 168 阅读 · 0 评论 -
工厂方法模式
工厂模式:只能生产一个产品(单一产品,具体什么工厂就生产什么产品) 下面例子中就是A工厂生产具体A产品,B工厂生产具体B产品! C++代码: #include <iostream> using namespace std; // 工厂方法模式案例 // ---1.工厂方法只能生产单一产品 // ---2.具体产品工厂生产具体产品 //产品抽象类 class Produ...原创 2014-04-08 22:46:43 · 580 阅读 · 0 评论 -
简单工厂模式
#include <iostream> using namespace std; //具体产品类型 typedef enum _ProductType { ProductTypeA, ProductTypeB }ProductType; //产品抽象类 class Product { public: virtual ~Product(){}; virtual voi...原创 2014-04-08 19:58:46 · 530 阅读 · 0 评论 -
单例模式--- 声明周期托管方式
声明周期托管方式,IOC JAVA代码 MyManager.java import java.util.HashMap; /** * 为了管理对象的产生 * 对象的控制权给当前类负责 * 生命周期托管实现对象的单例 * IOC控制反转 */ public class MyManager { // 存储所有被管理的对象 private static HashMap...原创 2019-09-04 23:00:24 · 357 阅读 · 0 评论 -
单例模式---懒汉式
Java代码: class Sign{ private static Sign s; //不初始化 //私有化构造器 private Sign(){} //线程安全synchronized //延迟加载 public static synchronized Sign getInstance(){...原创 2016-05-06 17:49:23 · 592 阅读 · 0 评论 -
单例模式---饿汉式
Java代码: class Sign{ //类加载时初始化,不延迟加载,类加载时是线程安全的 效率低 private static Sign s = new Sign(); //私有化构造器 private Sign(){} //线程安全 ,效率高 public static Sign getInstance(){ return s; } } public...原创 2016-05-06 17:53:49 · 393 阅读 · 0 评论 -
单例模式---静态内部类
package javaTestpack; //Fil内没有static属性,则不会像饿汉式那样立即加载对象 class Sign{ //只有使用Sign类里getInstace()方法时才加载内部类并创建单例 且线程安全 //调用效率高 且实现了延时加载 private static class SignInstance{ private static final Sign in...原创 2016-05-06 21:11:20 · 1667 阅读 · 0 评论 -
单例模式---枚举式
/** * 测试枚举式实现单例模式 * 没有延迟加载 * @author jadeshu */ enum Fil{ //这个枚举元素,本身就是单例对象 INSTANCE; //添加自己需要的操作 //.... public void Operation(){ } } public class Test{ public static void main(String[] ...原创 2016-05-06 21:33:50 · 456 阅读 · 0 评论 -
单例模式总结
单例模式总结 常见的五种单例模式 -----主要 1.饿汉式(线程安全,调用效率高,不能延迟加载) 2.懒汉式(线程安全,调用效率不高,可以延迟加载) -----其他 3.双重检测琐式(不推荐) 4.静态内部类式(线程安全,调用效率高,可以延迟加载) 5.枚举式(线程安全,调用效率高,不能延迟加载且可以防止反射和反序列化漏洞) 如何选用 ---1.不需要延迟加载(单例对象...原创 2016-05-06 21:55:07 · 357 阅读 · 0 评论 -
设计模式综合列表【QQ空间日志转载】
C++设计模式全篇 【QQ空间日志转载】原创 2019-03-08 19:44:54 · 236 阅读 · 0 评论