C++设计模式
HL_风神
请指教
展开
-
C++设计模式学习-模板方法模式
一个抽象的类公开的定义了一个方法的模板。它的子类可以根据需要来重写这个方法,但调用将以抽象类中定义的方式进行。这是一种代码复用技术,他提取了类库中的公共行为,将公共行为放到父类中,然后其子类来实现各自不同的行为。可以实现一种反向的控制,通过子类覆盖父类的函数,从而来防止某一步的执行。父类形式化的定义一个算法,然后具体的实现的方法由子类来实现。符合单一职责原则和开闭原则。原创 2022-12-18 15:29:54 · 129 阅读 · 0 评论 -
C++设计模式学习-适配器模式
在两个不兼容的接口之间搭建了一个桥梁,使得两个不同的接口可以使用。原创 2022-12-18 15:13:52 · 118 阅读 · 0 评论 -
C++设计模式学习-外观模式
外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。封装的内容可以是相互之间毫无关联的东西,但是是一个共同的功能下的。原创 2022-12-18 14:59:38 · 93 阅读 · 0 评论 -
C++设计模式学习-观察者模式
用于建立一种对象与对象之前的依赖关系, 一个对象发生改变的时候将自动通知其他的对象,其他对象将相应做出反应。发生改变的对象称为观察目标, 被通知的对象称为观察者。原创 2022-12-04 20:49:13 · 188 阅读 · 0 评论 -
C++设计模式学习-代理模式
提供一种代理来控制对其他对象的访问通过一个抽象类提供的一套相同的接口然后通过封装的方式,来实现通过对代理的访问来间接地访问真正的类。原创 2022-12-04 20:19:05 · 236 阅读 · 0 评论 -
C++设计模式学习-单例模式
单例模式只有一个实例, 并提供一个访问他的全局访问点实现单例的步骤构造函数私有化增加静态私有的当前类的指针变量提供一个静态的对外接口, 可以让用户获得单例对象单例分为懒汉式和饿汉式单例对象释放的问题可以在对象中新建一个静态的 垃圾桶 ,通过 垃圾桶 的析构函数来释放单例对象多此一举!!!!因为当要销毁单例对象的时候,程序即将销毁,而当程序销毁的时候,单例对象自然会被销毁,所以无需手动销毁!!!!代码演示单例模式遇到多线程懒汉式是线程不安全的(可能同时new很多个对象)饿汉式是线程安全的(对原创 2022-12-04 20:18:14 · 92 阅读 · 0 评论 -
C++设计模式学习-抽象工厂模式
抽象工厂针对的是产品族,而不是产品的等级结构产品族:同一产地或同一厂商,功能不同产品等级:功能相同,产地或者厂商不同代码原创 2022-12-04 16:47:56 · 180 阅读 · 0 评论 -
C++设计模式学习-工厂方法模式
将一个大的工厂抽象出来,然后每一个类都有一个对应的具体的工厂缺点:类的个数成倍增加(增加一个类,就要增加一个对应的工厂),从而导致类越来越多,增加了维护的成本增加了系统的抽象性和理解难度好处:符合开闭原则实现了对象创建和使用的分离系统的可扩展性变得很好,无需修改接口和原类使用场景:客户端不知道他所需要的对象的类抽象工厂类通过其子类来指定创建哪个对象代码原创 2022-12-04 16:17:53 · 238 阅读 · 0 评论 -
C++设计模式学习-简单工厂模式介绍
通过一个工厂来创建要创建的类好处:客户端和具体实现类解耦对于某些对象创建过程比较复杂的情况,我们也可以不去考虑(无需关心创建的过程)不好:简单工厂模式,增加新的功能是通过修改代码来实现的,不符合开闭原则类的职责过重,若这个类发生问题,会影响很多使用这个工厂的模块适用场景:工厂类负责的对象比较少客户端只知道传入工厂类的参数,对于如何创建对象不关心案例代码原创 2022-12-04 15:54:03 · 127 阅读 · 0 评论 -
C++设计模式学习-面向对象设计原则
核心的问题:如何同时提高一个软件系统的可维护性和可复用性原则的目的:高内聚,低耦合单一职责原则类的职责单一,对外只提供一种功能,而引起类变化的原因应该只有一个开闭原则类的改动是通过增进代码进行的,而不是修改原代码里氏代换原则任何抽象类出现的地方都可以用他的实现类进行替换(多态)依赖倒转原则依赖于抽象,不要依赖与具体的实现,对接口编程传统设计:优化的设计:接口隔离原则一个接口只提供一种对外的功能合成复用原则对于继承和组合,优先使用组合(即作为一个参数或者是一个内部成员)迪米特原则(又叫最少知识原则)原创 2022-12-04 15:07:39 · 86 阅读 · 0 评论