Swift 新手-Design pattern 软件开发设计模式

什麽是设计模式?

在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反覆出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到电脑科学的。

设计模式并不直接用来完成程序码的编写,而是描述在各种不同情况下,要怎麽解决问题的一种方案。物件导向设计模式通常以类别或物件来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类别或物件。设计模式能使不稳定依赖於相对稳定、具体依赖於相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。

并非所有的软件模式都是设计模式,设计模式特指软件「设计」层次上的问题。还有其他非设计模式的模式,如架构模式。同时,演算法不能算是一种设计模式,因为演算法主要是用来解决计算上的问题,而非设计上的问题。

-- by wikipedia 设计模式 (电脑)

为什麽需要设计模式?
当产品需求有变动时,代表程序码也需要作出相对应的更动,让功能能顺利上线验收;而程序码变更的潜在风险就是不知道何时会引发陈年技术债(omg),需要想办法降低修改程序码而导致 bug 产生的可能性,这时候可以参考设计模式寻找解法!

使用设计模式前,先了解物件导向设计的 5 大基本原则
wikipedia 物件导向设计
SOLID 设计原则-SRP、OCP、LSP、ISP、DIP

设计模式三类别
Swift 常见的设计模式

  • 建立型模式(5种)
  1. 单例模式
  2. 原型模式
  3. 建造者模式
  4. 工厂方法模式
  5. 抽象工厂模式
  • 结构型模式(7种)
  1. 代理模式
  2. 外观模式
  3. 桥接模式
  4. 组合模式
  5. 享元模式
  6. 介面卡模式
  7. 装饰器模式
  • 行为型模式(11种)
  1. 策略模式
  2. 命令模式
  3. 状态模式
  4. 备忘录模式
  5. 访问者模式
  6. 中介者模式
  7. 直译器模式
  8. 观察者模式
  9. 迭代器模式
  10. 责任链模式
  11. 模板方法模式

结语
希望能在新手时期打底观念,在未来写出一个乾净、有弹性且好测试的程序!


<<:  Progressive Web App 个案分析: 乐天 24 导入 PWA 後带来的好处 (10)

>>:  不只懂 Vue 语法:为什麽要用 Vuex? Vuex 基本架构是怎样?

初探MVC架构

MVC是什麽 MVC是一种软件架构,着重在关注点分离,此架构分成三类 M : Model : 专注於...

Day 22:1863. Sum of All Subset XOR Totals

今日题目 题目连结:1863. Sum of All Subset XOR Totals 题目主题:...

DAY01 - 在开始之前

自己的工作生涯,从切版走向串接的第一年, 而还在切版时期,我所想像的前端工程师就是切版+串接, 我已...

[Day12] 介面篇 - 显示血条2

manageGaugeVisibility方法 bitmapHeight方法 bitmapWidth...

Angular Stock登入(一)(Day21)

今天要开始实作登入页面,首先我们先新增一个login元件 ng generate component...