0%

软件设计模式简介

软件设计模式简介

软件设计模式属于软件工程领域的解决问题的基本方法,它提供了一种合理地达成目标的处理步骤。本文主要简单提出为何需要它,它的作用,以及它的主要组成元素。

什么是软件设计模式

软件设计模式其实就是为了解决问题,而制定的一种抽象层面的合理地达到目标的处理步骤。

设计模式的不同需要更具特定的业务场景来决定,每一种模式都包含特定的意图,动机和结构。

谁发明了设计模式 > 模式的概念源自于建筑学概念,最早由克里斯托佛·亚历山大提出。后来该概念被应用到软件开发领域以解决程序设计中遇到的各种问题,最初代表就是GoF四人组的书,从上个世纪末以来,这种方法一直在大中型软件设计处处可见,成为软件设计参考的通用标准。

为什么需要软件设计模式

软件设计模式是解决问题的工具箱,对于面向对象的问题场景时,这点尤为重要。

同时,软件设计模式也是一种通用的沟通语言,试想:如果一位同事用纯函数式的流程式写了一个很大的模块,然后现在需要把模块交接给另一位来维护,那么后交接的这位就可能面临理解偏差等等未知风险(俗称“屎山代码”)。人对于结构化的,图形化的事物更容易理解,软件设计模式即是一种通用方法学。

一些需要注意的地方 > 软件设计模式虽然有居多好处,但是也并非没有缺点。最常见的问题就是不当使用,有的现代高级语言提供了更好的解决方式,可以替代原有的设计模式,还有一种是过度使用,设计模式只有给项目带来可观改善时,它的作用才可展现出来,例如:有的业务场景为了达到接口通用性,隐藏掉系统内部的复杂性,可以使用外观模式来改善,但是对于系统内部本身就不复杂的来说,其实可以不用这样操作。

软件设计模式有哪些

设计模式主要分为三个类别:

  • 创建型模式(Creational Pattern)
  • 结构型模式(Structural Pattern)
  • 行为型模式(Behavioral Pattern)

逻辑关系如下图所示:

Design Pattern

创建型模式(Creational Pattern)

创建型模式是一种构造模式,可以提升代码的灵活性和可复用性,常见的模式有: 工厂方法(Factory Method),抽象工厂方法(Abstract Factory),生成器(Builder),原型(Prototype),单例(Singleton)。

结构型模式(Structural Pattern)

结构型模式是描述对象数据结构的组装与分配,常见的模式有: 适配器模式(Adapter),桥接模式(Bridge),组合模式(Composite),装饰模式(Decorator),外观模式(Facade),享元模式(Flyweight),代理模式(Proxy)。

行为型模式(Behavioral Pattern)

行为型模式是负责对象间的高效沟通与职责委派,常见的模式有: 责任链模式(Chain of Responsibility),命令模式(Command),迭代器模式(Iterator),中介者模式(Mediator),备忘录模式(Memento),观察者模式(Observer),状态模式(State),策略模式(Strategy),模板方法模式(Template Method),访问者模式(Visitor),解释器(Interpreter)。

欢迎关注我的其它发布渠道