设计模式介绍

写在前面的话

以前也学习过设计模式,但是总感觉学不懂,最近开发项目深刻感受到设计模式的重要性,系统学习一些。

我是观看油管上李建忠老师的视频学习做的总结,会不断补充,欢迎大家指出错误,学习进步。

首先设计模式是在软件开发过程中用于解决特定设计问题的经验总结和最佳实践。它们是一种面向对象设计的指导原则,可帮助开发人员更有效地构建可重用、可维护和可扩展的软件系统。

看了李建忠老师的视频,我发现为什么之前学习设计模式感到很吃力,因为之前学习只是为了去看某个模式的代码是怎么写的,用的时候比葫芦画瓢,所以理解的并不深刻,有点像死记硬背。

所以想要学懂设计模式,我们不应该把眼光单单放在看懂某一模式的代码,而是从更底层的方面去了解,为什么要有设计模式、这个设计模式基于什么情况使用、软件开发过程中设计模式解决了什么问题。带着这些问题去研究设计模式才能更好的举一反三。

设计模式其实是一种面向对象设计的指导原则,“好的面向对象设计模式”指的是那些可以满足“应对变化,提高复用”的设计。

软件设计的要点是“寻找变化点,在变化点处应用设计模式”

“什么时候,什么地方应用设计模式比理解设计模式结构本身更为重要。”

设计模式分类

从目的来看:

  • 创建型模式
  • 结构型模式
  • 行为型模式

从范围来看:

  • 类模式处理类与子类的静态关系
  • 对象模式处理对象间的动态关系

遵循的原则

单一职责原则:一个类应该只有一个引起它变化的原因。一个类应该只包含一个责任,这样可以提高类的内聚性和可维护性。

开放封闭原则:软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。通过抽象和多态,可以使系统在不修改代码的情况下进行扩展。

里氏替换原则:任何父类可以被子类替换,而程序的行为不会受到影响。子类应该能够替代其父类在所有使用父类的地方,这样可以确保系统的稳定性和扩展性。

接口隔离原则:客户端不应该依赖于它不需要使用的接口。将大的接口拆分为更小、更具体的接口,可以减少耦合性,并提高系统的可维护性和灵活性。

依赖倒置原则:应该依赖于抽象而不是具体实现。高层模块不应该依赖低层模块,二者都应该依赖于抽象。通过使用接口和依赖注入等技术,可以降低组件之间的耦合性。

迪米特法则:一个对象应该对其他对象有最少的了解。一个对象应该与其它对象之间保持松耦合,只与最紧密的的朋友发生交互。减少对象之间的依赖关系可以提高系统的可维护性和灵活性。

目前关于设计模式的介绍只总结到这些,后续会继续补充,尽量用最少的语言表达最清楚。

你可能感兴趣的:(设计模式,设计模式,C++)