![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
lifei_0001
耕种的老农
展开
-
七、命令模式
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。优点:1、降低了系统耦合度。 2、新的命令可以很容易添加到系统中去。使用场景:认为是命令的地方都可以使用命令模式,比如: 1、GUI 中每一个按钮都是一条命令。 2、模拟 CM...原创 2020-04-01 09:15:20 · 72 阅读 · 0 评论 -
六、适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。...原创 2020-03-31 09:11:33 · 81 阅读 · 0 评论 -
五、原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。利用已有的一个原型对象,快速地生成和原型对象一样的实例。特点:没有经过构造函数呗。至于浅拷贝还是深拷贝开发者要明确。原型模式步骤或组成1.、基类,包含有拷贝功能。2、派生类3、缓存类,包含有(2)类中的原始模板,提供快速生成clone对象的功能。...原创 2020-03-31 08:54:49 · 76 阅读 · 0 评论 -
四、建造者模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。何时使用:...原创 2020-03-28 09:21:42 · 74 阅读 · 0 评论 -
三、单例模式
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式组成:1、有一个静态的成员变量。提供该类的唯一实例2、构造函数定义为私有。使外部无法创建对象实例3、一个静态的访问接口。提供唯一的对象访问接口,如果唯一对象没有被创建则在这个里面创建。///C++ 实现的单例模板...原创 2020-03-27 14:16:38 · 76 阅读 · 0 评论 -
二、抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。抽象工厂模式组成:1. 多个接口基类。每个基类包含子类的公共接口。2. 每...原创 2020-03-26 09:21:32 · 80 阅读 · 0 评论 -
一、工厂模式
工厂模式由三部分组成:1. 接口基类。提供接口声明的抽象类;2.多个派生出的子类。实现接口的定义,不同的子类同样的接口实现内容不同。3.工厂类,根据传进来的参数,生产出不同的子类,返回值都是基类指针。注意事项:作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过 new 就可以完成创...原创 2020-03-25 09:37:35 · 338 阅读 · 1 评论