![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式(C++)
文章平均质量分 66
可复用面向对象软件的基础
Hank_W
这个作者很懒,什么都没留下…
展开
-
C++设计模式-享元(Flyweight)
Flyweight接口使共享成为可能,但它并不强制共享。在Flyweight对象结构的某些层次,UnsharedConcreteFlyweight对象通常将ConcreteFlyweight对象作为子节点。ConcreteFlyweight对象必须是可共享的。当用户请求一个flyweight时,FlyweightFactory对象提供一个已创建的实例或者创建一个(如果不存在的话)。描述一个接口,通过这个接口flyweight可以接受并作用于外部状态。计算或存储一个(多个)flyweight的外部状态。原创 2023-10-07 04:06:39 · 665 阅读 · 0 评论 -
C++设计模式-外观(Facade)
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。没有facade的任何相关信息;即没有指向facade的指针。将客户的请求代理给适当的子系统对象。处理由Facade对象指派的任务。知道哪些子系统类负责处理请求。原创 2023-10-07 02:37:24 · 235 阅读 · 0 评论 -
C++设计模式-装饰器(Decorator)
维持一个指向Component对象的指针,并定义一个与Component接口一致的接口。动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。定义一个对象接口,可以给这些对象动态地添加职责。定义一个对象,可以给这个对象添加一些职责。原创 2023-10-07 01:58:16 · 322 阅读 · 1 评论 -
C++设计模式-组合(Composite)
Composite使得用户对单个对象和组合对象的使用具有一致性。(可选)在递归结构中定义一个接口,用于访问一个父部件,并在合适的情况下实现它。你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。在Component接口中实现与子部件有关的操作。在适当的情况下,实现所有类共有接口的缺省行为。通过Component接口操纵组合部件的对象。在组合中表示叶节点对象,叶节点没有子节点。定义有子部件的那些部件的行为。在组合中定义图元对象的行为。为组合中的对象声明接口。原创 2023-10-07 00:24:37 · 161 阅读 · 0 评论 -
C++设计模式-桥接(Bridge)
定义抽象类的接口。维护一个指向Implementor类型对象的指针。原创 2023-10-06 22:01:12 · 1072 阅读 · 0 评论 -
C++设计模式-适配器(Adapter)
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。对Adaptee的接口与Target接口进行适配。定义一个已经存在的接口,这个接口需要适配。定义Client使用的与特定领域相关的接口。类适配器使用多重继承对一个接口与另一个接口进行匹配。与符合Target接口的对象协同。对象匹配器依赖于对象组合。原创 2023-10-06 20:39:15 · 205 阅读 · 0 评论 -
C++设计模式-单件(Singleton)
定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作。当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。保证一个类仅有一个实例,并提供一个访问它的全局访问点。可能负责创建它自己的唯一实例。原创 2023-10-06 19:50:09 · 237 阅读 · 0 评论 -
C++设计模式-原型(Prototype)
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。让一个原型克隆自身从而创建一个新的对象。实现一个克隆自身的操作。声明一个克隆自身的接口。原创 2023-10-06 03:35:45 · 543 阅读 · 0 评论 -
C++设计模式-生成器(Builder)
表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。包含定义组成部件的类,包括将这些部件装配成最终产品的接口。实现Builder的接口以构造和装配该产品的各个部分。为创建一个Product对象的各个部件指定抽象接口。构造一个使用Builder接口的对象。当构造过程必须允许被构造的对象有不同的表示时。定义并明确它所创建的表示。提供一个检索产品的接口。原创 2023-10-06 02:33:41 · 1100 阅读 · 0 评论 -
C++设计模式-抽象工厂(Abstract Factory)
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。原创 2023-10-05 14:43:52 · 203 阅读 · 0 评论 -
C++设计模式-工厂模式(Factory Method)
声明工厂发法,该方法返回一个Product类型的对象。Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的ConcreteProduct对象。定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。重定义工厂方法以返回一个ConcreteProduct实例。可以调用工厂方法以创建一个Product对象。定义工厂方法所创建的对象的接口。实现Product接口。原创 2023-10-05 13:57:14 · 258 阅读 · 0 评论