摘要:设计模式代表有经验的面向对象软件开发人员使用的最佳实践。 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。 这些解决方案是由许多软件开发人员在相当长的时间内通过试错获得的。

设计模式四人帮(GOF)是什么?

1994年,有四位作者:Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides发表了一本题为《设计模式 - 可重用的面向对象软件元素》的图书,该书在软件开发中开创了设计模式的概念。
这些作者被统称为四人帮(GOF)。 根据这些作者,设计模式主要基于以下面向对象设计的原则:

  • 程序到一个接口不用实现。
  • 有利于对继承对象组合。

设计模式的使用

设计模式在软件开发中有两个主要用途

开发人员的通用平台

设计模式提供了标准术语,并且特定于应用折场景。 例如,单例设计模式表示使用单个对象,所以熟悉单一设计模式的所有开发人员都将使用单个对象,并且他们可以告诉对方程序正在遵循单例模式。

最佳实践

设计模式已经经过一段很长的时间发展,它们为软件开发过程中面临的某些问题提供了最佳解决方案。 学习这些模式有助于无经验的开发人员以一种简单快捷的方式学习软件设计。

设计模式的类型

根据设计模式参考《设计模式 - 可重用的面向对象软件元素》一书中所述,一共有23种设计模式可以分为三类:创造模式结构模式行为模式。在这里我们还将讨论另一类设计模式:J2EE设计模式

    • 创造模式

这些设计模式提供了一种创建对象而隐藏创建逻辑的方法,而不是直接使用 new 操作符来实例化对象。 这使程序在决定对于给定的用例需要创建哪些对象时具有更大的灵活性。

    • 结构模式

这些设计模式涉及类和对象组成。 继承概念用于组成接口并定义方法组合对象以获得新功能。

    • 行为模式

这些设计模式是特别侧重于对象之间的通信。

    • J2EE模式

这些设计模式特别涉及表示层。 这些模式由Sun Java Center标识。

另外,设计模式是与编程语言无关的,它是用于解决常见的面向对象的设计问题。
设计模式代表一个想法,而不是一个实现。
通过使用设计模式,可以使我们的代码更灵活,可重用和可维护。
Java本身内部遵循设计模式。
在核心java中,主要有三种类型的设计模式,它们可进一步分为以下子部分:

  • 创造设计模式
    • 工厂模式
    • 抽象工厂模式
    • 单例模式
    • 原型模式
    • Builder模式
  • 结构设计模式
    • 适配器(Adapter)模式
    • 桥接(Bridge)模式
    • 组合模式
    • 装饰者(Decorator)模式
    • 外观(Facade)模式
    • 享元(Flyweight)模式
    • 代理(Proxy)模式
  • 行为设计模式
    • 责任链模式
    • 命令模式
    • 解释器模式
    • 迭代器模式
    • 调解者(Mediator)模式
    • 备忘录模式
    • 观察者模式
    • 状态模式
    • 策略模式
    • 模板模式
    • 访问者模式