C++设计模式
henuzxy
已经成为刷题过千的男人,即将成为cf 1900分的男人。
展开
-
设计模式-单例模式 C++实现
单例模式定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。特点:1.单例类只有一个实例对象;2.该单例对象必须由单例类自行创建;3.单例类对外提供一个访问该单例类的全局访问点。结构:单例类的构造函数往往是私有的。C++ 实例:第一种:懒汉式单例这种模式特点是类加载时没有生成单例,只有当第一次调用getInstance()后才去创建这个单例。SingleTon.h#if...原创 2019-04-12 11:23:08 · 159 阅读 · 0 评论 -
设计模式-建造者模式 C++实现
建造者模式定义:将一个复杂对象的构造与他的表示分离,是同样的构造过程可以创建不同的表示。可以想象为先创建一个产品的骨架,再拼接他的零件。特点:(1)各个具体的建造者相互独立,有利于系统的扩展。(2)客户端不必知道产品内部的组成细节,便于控制细节风险。主要角色 Product,AbstractBuilder,Builder,DirectorC++实现Product.h#pragma on...原创 2019-04-15 23:30:55 · 206 阅读 · 0 评论 -
设计模式-原型模式 C++实现
原型模式定义:用一个已经创建的实例作为原型,通过拷贝该原型对象来创建一个和原型相同的新对象。原型模式的克隆分为浅克隆和深克隆;浅克隆:创建一个新对象,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。深克隆:创建一个新对象,属性中指向的其他对象也被拷贝了一份。C++实现,这里的Clone()是深克隆Prototype.h#pragma onceclass Prototype...原创 2019-04-12 23:08:59 · 142 阅读 · 0 评论 -
设计模式-工厂模式 C++实现
工厂模式定义:一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子类工厂类中。特点:(1)用户只要知道具体工厂的名称就可以得到所需要的产品,无需知道产品创建的过程。(2)增加新产品时只需要添加具体产品类和对应的具体工厂,无需修改源代码,满足开闭原则。C++实现如下Product.h#pragma onceclass AbstractProduct {public: Ab...原创 2019-04-13 23:02:23 · 162 阅读 · 0 评论 -
设计模式-适配器模式 C++实现
适配器模式定义:将一个类的接口转化为客户希望的另外一个接口,是的原本由于接口不兼容而不能在一起工作的那些类能一起工作。特点:(1)客户端通过适配器可以透明的调用目标接口.(2)程序员不需要修改原有代码而重用现有的适配者类。(3)将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。主要角色 目标接口(Target),适配者类(Adaptee,被转换为的对象)适配器(Adapter)...原创 2019-04-26 21:17:59 · 221 阅读 · 0 评论 -
设计模式-代理模式 C++实现
代理模式定义:由于某些原因给某个对象提供一个代理以控制该对象的访问。特点:(1)代理模式再客户端和目标对象之间起到一个中介的作用和保护目标对象的作用。(2)代理对象可以扩展目标对象的功能。(3)代理模式能将客户端和目标对象分离,一定程度上降低了系统的耦合度。主要角色 Subject,ConcreteSubject,Proxy具体应用的例子:比如你有一个生产玩偶的工厂,但你自己生产的不是很美...原创 2019-04-22 23:21:15 · 225 阅读 · 0 评论