设计模式
九条院
无简介
展开
-
单例模式
(本人新手,写博客为了记录学习,如果内容有误欢迎大家指正!)为什么会提出单例模式?在架构设计时,有些类可能在整个系统生命周期中最多只能有一个对象存在。什么是单例模式?就是在整个系统生命周期中保证最多只能出现一个对象。那我们什么需要使用单例模式?1、在多个线程之间,初始化一次socket;2、在整个程序空间使用全局变量,共享资源;3、大规模系统中,为...原创 2019-04-18 22:25:57 · 88 阅读 · 0 评论 -
适配器模式
适配器模式的作用就是将一个类的接口转换成其他类想要的接口,使得原本接口不兼容的类可以一起工作。(举个生活中的例子,你有一个两相的插孔,但是你的用电器用的是三相插头,所以你要用适配器将三相插头转成两相插头,再插入两相的插孔中使用)1、类适配器类的适配要用到多重继承来提供适配后的接口(你没看错,就是多重继承)。。。。类适配器的优点: 因为适配器类是适配者类的子类,所以可以在适配器类中置换一些...原创 2019-06-11 11:45:36 · 112 阅读 · 0 评论 -
装饰模式
装饰模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。装饰模式动态的给一个对象添加一些额外的职责,就增加功能来说,该模式比生成子类更为灵活。装饰模式就是把要添加的附加功能分别放到单独的类中,并让这个类包含它要装饰的对象。当我们需要执行时,客户端可以有选择的、按顺序的使用装饰功能小妖怪,快看代码#include<iostream>#inc...原创 2019-06-10 23:19:05 · 97 阅读 · 0 评论 -
代理模式
代理模式非常简单。代理模式为其他对象提供一种代理以控制这个对象的访问。Subject(抽象主题角色): 真实主题与代理主题的共同接口RealSubject(真实主题角色): 第一轮代理角色所代表的真实对象。Proxy(代理主题角色): 含有对真实主题角色的引用,代理角色通常在将客户端调用传递给真实主题对象之前或者之后执行某些操作,而不是单纯返回真实的对象。a中包含b类;a、b类中实现协议类...原创 2019-06-10 22:32:33 · 86 阅读 · 0 评论 -
原型模式
原型模式比较简单,其作用就是为每一个对象提供一个接口,使这些对象具有自我复制的功能。既然要实现对象的复制,就会涉及到深拷贝和浅拷贝。代码上,小妖怪。#include<iostream>#include<string>#include<cstring>using namespace std;class Object{public: v...原创 2019-06-10 18:01:06 · 185 阅读 · 0 评论 -
建造者模式
什么时候适用这种模式?如果我们需要创建一个类,但是这个类中部件比较多,功能复杂。(建造者模式在一个对象的构建比较复杂时,将对象的构建 <产品的建造过程> 和对象的表示 <实际的产品> 进行分离)1、Builder:为创建产品各个部分,统一抽象接口。2、ConcreteBuilder:具体的创建产品的各个部分,部分1,部分2,部分3。。。3、Director:构造一个...原创 2019-06-10 16:21:33 · 122 阅读 · 0 评论 -
工厂模式
简单工厂模式通过专门定义一个类来负责创建其他类的示例,被创建的实例通常有共同的父类。简单工厂模式中的角色1、工厂角色 – 既然是工厂模式,那肯定得有个工厂。这是核心,他负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,用来创建所需的产品对象。2、抽象角色 &nb...原创 2019-05-29 22:24:40 · 123 阅读 · 0 评论 -
抽象工厂
抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必制定产品的具体类型的情况下,能够创建多个产品族的产品对象。(注意,这里是产品族,不是单一产品哦)老规矩,上代码#include<iostream>#include<string>using namespace std;//抽象角色class Coff...原创 2019-05-31 22:48:10 · 129 阅读 · 0 评论 -
外观模式
为子系统统一一套接口,让子系统更加容易使用。原创 2019-06-12 16:46:15 · 103 阅读 · 0 评论 -
QT 模型视图设计模式(一)
模型视图设计模式的核心思想-- 模型(数据)与视图(显示)相分离-- 模型对外提供标准接口存取数据(不关心数据如何显示)-- 视图自定义数据的显示方式(不关心数据如何组织存储)模型视图模式的工作机制-- 当数据发生改变时 模型发出信号通知视图-- 当用户与视图进行交互时 视图发出信号提供交互信息关键技术问题:...原创 2019-04-29 19:51:50 · 471 阅读 · 0 评论 -
桥接模式
现在有两个集合,集合A里的任意一个元素可以和集合B中任意一个元素结合。换成现实中的例子的话就是,一辆车(集合A)(大众,宝马,福特。。。)装发动机(集合B)(4000,5000,6000。。。)。桥接模式是将抽象部分与实际部分分离,使他们都可以独立变化。#include<iostream>//#include<string>using namespace s...原创 2019-06-11 14:27:15 · 109 阅读 · 0 评论