我的 设计模式 随笔

Last updated on September 2, 2024 pm

什么是设计模式?

顾名思义,无论是什么领域出现了模式相关的东西,那么这些模式一定是相对于原生来说,更加高效、更加优雅、可维护更强。

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

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

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

随着软件开发社群对设计模式的兴趣日益增长,已经出版了一些相关的专著,定期召开相应的研讨会,而且沃德·坎宁安(Ward Cunningham)为此发明了WikiWiki用来交流设计模式的经验。

Java中都有哪些设计模式?

很多人都说一共有 23 种设计模式,但是我们根据设计模式的定义来看,我认为MVC也是一种设计模式,所以,在强调了只要是基于原生、前辈们经验总结下来的设计思想,都可以说是一种设计模式。

常见的设计模式有:

  1. 工厂模式

    创建一个工厂,用于创建对象。
    目的:将对象的创建与使用分离,可以避免在代码中重复写对象创建的代码。

  2. 模板方法模式

    抽出公共方法,然后复用

  3. 装饰器模式

    继承,然后添加新的功能就叫装饰器

  4. 享元模式

  5. 适配器模式

    将一个类的接口换成客户端希望的立一个接口,可以是原不兼容的类被使用。

  6. 单例模式

    确保类只有一个实例,并只提供一个全局访问点。

    设计模式的七大原则

SRP: Single Responsibility Principle(单一职责)—— 一个类只干一件事
OCP: Open Close Principle(开放关闭原则)—— 开放功能,关闭修改
LSP: 里氏替换原则 —— 任何一个父类都可以使用子类来替换,并且不影响程序正常执行
DIP: 依赖倒置原则 —— 高层模块要依赖于抽象接口
ISP: 接口隔离原则 —— 也就相当于接口单一职责,接口应该小而精,不包含多余的方法
CARP: 合成聚合复用原则 —— 少用继承,优先使用合成聚合来构建复杂对象
LoD: 迪米特法则 —— 松耦合

总结:

我认为设计模式就是前人针对于各种各样的总结下来的精华。是完全可以直接复用,并且能够提高开发效率的一种模式。


我的 设计模式 随笔
https://wlei224.gitee.io/2023/12/20/MyDesignModeEssay/
Author
WLei224
Posted on
December 20, 2023
Updated on
September 2, 2024
Licensed under