
C++ 系列之设计模式篇
文章平均质量分 67
设计模式篇
Carson.Yang
C++/QT/Android Framwork工程师
展开
-
18 C++设计模式之观察者(Observer)模式
观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。...原创 2022-08-31 16:11:29 · 363 阅读 · 0 评论 -
23 C++设计模式之解释器(Interpreter)模式
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。原创 2022-09-02 16:34:44 · 838 阅读 · 2 评论 -
22 C++设计模式之备忘录(Memento)模式
备忘录(Memento): 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。原创 2022-09-02 16:34:21 · 633 阅读 · 0 评论 -
21 C++设计模式之访问者(Visitor)模式
访问者模式(Visitor),表示一个作用于某对象结构中的各个元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。原创 2022-09-02 16:34:00 · 730 阅读 · 0 评论 -
20 C++设计模式之迭代器(Iterator)模式
迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。原创 2022-09-02 16:33:33 · 624 阅读 · 0 评论 -
19 C++设计模式之中介者(Mediator)模式
中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。原创 2022-09-02 16:33:03 · 581 阅读 · 0 评论 -
17 C++设计模式之状态(State)模式
状态模式(state),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。原创 2022-08-30 10:37:40 · 912 阅读 · 1 评论 -
16 C++设计模式之职责链(Chain of Responsibility)模式
职责链模式(Chain of Responsibility),使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。...原创 2022-08-30 10:12:40 · 571 阅读 · 0 评论 -
15 C++设计模式之命令(Command)模式
命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。原创 2022-08-30 10:00:56 · 487 阅读 · 0 评论 -
14 C++设计模式之策略(Strategy)模式
策略模式(Startegy):它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。原创 2022-08-19 10:47:50 · 795 阅读 · 0 评论 -
13 C++设计模式之模板方法(TemplateMethod)模式
模板方法模式(TemplateMethod),定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。原创 2022-08-19 10:35:54 · 549 阅读 · 0 评论 -
12 C++设计模式之组合(Composite)模式
组合是一种结构型设计模式,你可以使用它将对象组合成树状结构,并且能像使用独立对象一样使用它们。原创 2022-08-11 15:51:19 · 566 阅读 · 0 评论 -
11 C++设计模式之享元(Flyweight)模式
享元是一种结构型设计模式,它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。原创 2022-08-11 15:27:37 · 884 阅读 · 0 评论 -
10 C++设计模式之外观(Facade)模式
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。原创 2022-08-11 15:00:41 · 372 阅读 · 0 评论 -
09 C++设计模式之装饰(Decorator)模式
装饰是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。原创 2022-07-27 17:21:22 · 371 阅读 · 0 评论 -
08 C++设计模式之桥接(Bridge)模式
桥接是一种结构型设计模式,可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。原创 2022-07-26 10:06:14 · 426 阅读 · 0 评论 -
07 C++设计模式之适配器(Adapter)模式
适配器是一种结构型设计模式,它能使接口不兼容的对象能够相互合作。原创 2022-07-21 11:58:07 · 405 阅读 · 0 评论 -
06 C++设计模式之代理(Proxy)模式
代理是一种结构型设计模式,让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。原创 2022-07-20 08:00:00 · 480 阅读 · 0 评论 -
05 C++设计模式之建造者(Builder)模式
将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。原创 2022-07-19 09:55:50 · 743 阅读 · 0 评论 -
04 C++设计模式之抽象工厂(Abstract Factory)模式
抽象工厂是一种创建型设计模式,它能创建一系列相关的对象,而无需指定其具体类。原创 2022-07-18 12:52:34 · 393 阅读 · 0 评论 -
03 C++设计模式之工厂方法(Factory Method)模式
在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型Product.h:ConcreteProduct.h:Creator.h:ConcreteCreator.h:main.cpp:原创 2022-07-13 09:27:40 · 329 阅读 · 1 评论 -
02 C++ 设计模式之原型(Prototype)模式
用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。例如,Windows 操作系统的安装通常较耗时,如果复制就快了很多。Prototype.h:ConcretePrototype.h:main.cpp:输出:...原创 2022-07-12 10:46:05 · 306 阅读 · 0 评论 -
01 C++ 设计模式之单例(Singleton)模式
单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点。单例模式可以保证内存里只有一个实例,减少了内存的开销。可以避免对资源的多重占用。单例模式设置全局访问点,可以优化和共享资源的访问。单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则。在并发测试中,单例模式不利于代码调试。在调试过程中,如果单例中的代码没有执行完,也不原创 2022-07-11 09:22:35 · 560 阅读 · 0 评论