设计模式-概述

Linux、Python、 Golang、Java、DevOps、前端、English / 2024-02-03 / 原文

前言

一些开源的第三方库、框架中大量采用设计模式设计底层代码,使得框架的使用者,可以更加简单、舒服地调用底层代码进行高层代码的开发;

这就是设计模式的魅力所在;

软件开发流程大致分为以下3大流程

  • 需求分析
  • 程序分析和设计
  • 程序开发

设计模式是程序员在设计程序阶段,重要的参考依据,可以帮我们设计出更加松耦合、易于扩展、易于高层代码调用的程序;

 

设计模式概念

设计模式是针对软件设计中普遍存在的(反复出现)的各种问题,所提出的解决方案。

每1个设计模式系统地命名、解释和评价了面向对象系统中1个重要的反复出现的设计。

面向对象

上文提到设计模式是针对面向对象程序提出的程序设计方案,所以回顾下面向对象知识。

面向对象的3大特性

面向对象的3大特性不是1个平级并列的关系而是1个循序递进的关系

封装:把属性(数据)、方法(函数)封装到1个类里面

继承:通过继承可以解决2个类直接复用代码的问题

多态:Python本身是1本多态的语言

面向对象的接口

概念

接口是若干抽象方法的集合

作用

规范、限制实现类的方法

对高层代码(Client)隐藏了类的内部实现

降低高层代码(Client)调用底层代码的复杂度(Client底层代码的调用者不需要关心底层代码是怎么实现的,达到目的即可)

面向对象设计原则

Solid原则是指面向对象5大原则的首字母拼成Solid单词;

单一职责(Single Responsibility Principle)

1个类负责1项职责

开放封闭原则(Open Close Principle)

1个软件实体(如类、模块、函数)应该对扩展开放,对修改关闭。

既软件扩展新功能时应尽量不修改原代码。

里氏替换原则(Liskov Substitution Principle)

所有引用父类的地方必须能透明地使用其子类对象;

即在调用1个类的方法时,这个方法的参数,可以是1个父类的对象,也可以是继承了这个父类的子类的对象;

这就需要子类在重写方法和父类的方法时,实现的行为应当和父类方法保持一致;

子类和父类方法的逻辑可以不一致,但是传入参数、返回的返回值一致;

接口隔离原则(Interface Segregation Principle)

 

依赖倒置原则(Dependency Inversion Principle)

 

 

 

 

 

 

 

 

 

 

 

参考