设计模式初见

panda2022-10-31 21:49:41编程基础设计模式

什么是设计模式?为什么需要设计模式?

为了解决软件设计中普遍存在的问题,前辈们总结了一些解决方案.而我们熟知的设计模式是前辈们通过经验总结下来的标准或者思路,它经受住了时间的考验;设计模式一词是由埃里希·伽马由建筑设计领域引进计算机世界;

那么设计模式体现在哪些地方呢?通常一个软件的组成由小到大:编程语言(现在大部分语言都是面向对象的设计模式)+功能模块(多种设计模式+算法)+框架(很多种设计模式)+架构(服务器集群等)

使用设计模式能适应多变的需求,增强程序的拓展性,以更清晰的思路实现功能,以及很大程度的提高应用的可维护程度(可读性,规范化).如果你想成为一名合格的软件开发人员,那么设计模式是你必须接触的东西.

设计原则(SOLID)

我们先来看看unix的设计哲学吧,他和设计模式的一些设计原则有很多相似的部分

  • 小而美 保持程序的简洁,保证最简洁的api
  • 每个程序只做一件事 每个函数就可以成为一个程序,这也是我们经常说的每个函数只做一件事
  • 快速搭建原型 先做出来,再维护,再优化
  • 可移植性大于性能 当可移植性和性能发生冲突时,优先取可移植性
  • 可读性最重要 优先保证程序的可读性
  • 提高复用性 这个可以说是程序员的共识了,解耦复用

是不是总有种似曾相识的感觉?哈哈哈哈,是了,和我们平时开发所提倡的一些东西有很大交集.正式开始我们的五大设计原则吧

S 单一职责

一个程序只做好一件事;对于功能复杂的函数,可以进行拆分,每个部分保证独立;

O 开放封闭

对拓展开放,对修改封闭;增加需求时,拓展新代码,而非修改已有代码

L 李氏置换

子类能够覆盖父类;父类能出现的地方,子类就可以出现;

I 接口独立

保持接口单一独立,避免出现复合接口,和单一职责有点相似,但是专注于接口

D 依赖导致

面向接口(抽象)编程,依赖于抽象而不依赖于具体;使用方只关注接口而不用去关注具体实现

23种设计模式

设计模式大体可分为以下几大类

创建型

  • 工厂方法模式
  • 抽象工厂模式
  • 建造者模式
  • 单例模式
  • 原型模式

结构型

  • 适配器模式
  • 装饰器模式
  • 代理模式
  • 外观模式
  • 桥接模式
  • 组合模式
  • 享元模式

行为型

  • 策略模式
  • 迭代器模式
  • 模板方法模式
  • 职责连模式
  • 观察者模式
  • 命令模式
  • 备忘录模式
  • 中介者模式
  • 状态模式
  • 解释器模式
  • 访问者模式
Last Updated 2022-11-28 05:59:07