C++设计模式总结:继承、关联与模式原则

需积分: 9 0 下载量 115 浏览量 更新于2024-07-18 收藏 4.75MB PDF 举报
"这篇文章是关于C++实现的设计模式个人总结,结合了黑马视频教程的精华内容,适合面试准备。文章涵盖了类与类之间的关系,包括泛化、关联、依赖、聚合和组合,并介绍了设计模式的基本原则,如开放封闭原则和依赖倒置原则,旨在实现高内聚、低耦合的软件设计。" 设计模式是一种在特定情境下解决常见问题的可复用解决方案,它基于面向对象编程的原则,使得代码更加可维护、可扩展和可重用。在C++中,设计模式的应用有助于提升代码质量。 1. 类和类之间的关系: - 泛化(Generalization):代表继承关系,子类继承父类的特性,如C++中的`class Derived : public Base`。 - 关联(Association):一个类作为另一个类的成员变量,表明两个类之间存在某种联系,如`class Car { private: Engine engine; }`。 - 依赖(Dependency):一个类的函数使用了另一个类,通常是作为参数或返回值,如函数`void func(BkWorker* worker) { worker->working(); }`。 - 聚合(Aggregation):整体与部分的关系,如汽车和引擎,可以替换不同的引擎,使用菱形空心边框表示。 - 组合(Composition):强于聚合的关系,整体对象负责部分对象的生命周期,如人与五脏六腑的关系,使用菱形实心边框表示。 2. 设计模式的基本原则: - 开放封闭原则(Open-Closed Principle):类应该对扩展开放,对修改关闭。这意味着在不修改原有代码的基础上,可以通过增加新代码来扩展功能。 - 依赖倒置原则(Dependence Inversion Principle):依赖于抽象,而非具体实现。这通常意味着高层模块不应该依赖于底层模块,两者都应依赖于抽象,实现细节向抽象层靠近。 文章中通过`BkWorker`抽象基类和`worker1`、`worker2`、`worker3`的示例,展示了如何利用继承和多态实现开放封闭原则,以及依赖倒置原则的应用,即定义一个通用接口`BkWorker`,而具体的存款、取款、转账功能由不同派生类实现,这样在添加新的业务功能时,无需更改原有类的代码。 通过理解和应用这些设计模式和原则,开发者可以创建出更健壮、易于维护的C++程序,提高代码的可读性和可复用性,从而在实际项目和面试中展现出专业素养。