0x00、7大设计模式原则 和 23种设计模式

阅读先导

你需要对 C#基础、面向对象(OO)有一定的基础,包括不限于:封装、继承、多态、重写、抽象类、接口等;

学习 设计模式 是不限开发语言的,本教程是用 C# 代码示例的,你也可以用 C++、java、python、php等具有面向对象的语言来进行学习本教程;

每一个开发人员都 必须要 掌握 面向对象 这一基础内容,而且需要在项目开发中灵活运用;

面向对象 不是很难理解,我觉得主要难的还是在不能很好的去实践它;

 

什么是设计模式(design pattern)?

在软件工程中,设计模式 是:对软件设计中普遍存在的各种问题,所提出的解决方案;(记住这句话)

这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的;

就好比上图中的 大厦vs简易房,前者因为规模大,开发时必须有有效的设计规划、而后者因为规模太小、可以跳过设计直接建造(但也不建议)。如果前者不设计规划,那么这个搭建这个大厦后肯定会出现各种各样的问题;

软件开发也是一样的道理,所以,在开发项目时,是务必要有一定的的软件设计模式基础的;

 

设计模式有什么重要性?

拿实际工作经历来说,当一个项目开发完后,如果客户提出增新功能,怎么办?

如果项目开发完后,原来程序员离职,你接手维护该项目怎么办?(代码需要强维护性,即可读性、规范性,接手项目才能快速)

目前程序员门槛越来越高,一线IT公司(大厂),都会问你在实际项目中使用过什么设计模式,怎样使用的,解决了什么问题

设计模式一般出现在项目中哪个阶段?  面向对象(OO)=>功能模块(设计模式+数据结构与算法)=>框架(这里也使用到设计模式)=> 架构(服务器集群);

如果想成为合格软件工程师,那就花时间来研究下设计模式是非常必要的;

 

设计模式原则

所有的(23种)设计模式都需要遵守的原则,称为:设计模式原则;

设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式之所以这样设计,其实所依据的就是遵守这7大原则)

常用的七大设计模式原则有:

1. 单一职责原则

2. 接口隔离原则

3. 依赖倒转(倒置)原则

4. 里氏替换原则

5. 开闭原则

6. 迪米特法则

7. 合成复用原则

注意:这7大原则和及其概念,必须要背,且必须要理解里面的含义;

 

设计模式的目

设计模式,是为了让程序,具有更好的:

  1. 代码重用性(即:相同功能的代码,不用多次编写)
  2. 可读性(即:编程规范性,便于其他程序员的阅读和理解)
  3. 可扩展性(即:当需要增加新的功能时,非常的方便,称为可维扩)
  4. 可靠性(即:当我们增加新的功能后,对原来的功能没有影响)
  5. 使程序呈现 高内聚,低耦合 的特性(模块内强依赖,模块间依赖很低)

 

金句:

设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要”

Scott Mayers 在其巨著《Effective C++》 就曾经说过: C++老手和 C++新手的区别就是前者手背上有很多伤疤

 

下一篇,我们开始讲解第一种设计模式原则:单一职责原则

posted @ 2022-04-01 19:43  醉马踏千秋  阅读(164)  评论(0编辑  收藏  举报