Java设计模式简介

任何一门编程语言都离不开设计模式,设计模式是使代码持续可复用、可扩展、可维护的重要保证

一、什么是设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。

二、设计模式七大基本原则

  • 单一职责原则

一个类只做一件事,职责明确,降低类的复杂度,降低了变更引起的风险。

  • 开闭原则

一个软件实体(如模块、类、接口、方法等)应该对修改关闭,对扩展开发。它是面向对象设计的终极目标,使得软件实体具体较强扩展性、复用性等。

  • 接口隔离原则

对于接口来说,不要把不相关的方法放到一个接口里,子类需要什么方法就分开定义什么接口。它为了约束接口、降低类对接口的依赖性,起到了重要作用。

  • 依赖倒置原则

高层模块不应该依赖低层模块,简单来说就是要依赖接口,不要依赖具体子类。

  • 迪米特法则

要做“直接的朋友(直接依赖)”,不要做“陌生的朋友”(方法内部引用的类),也就是两个类无需直接通信,那么就不应该发生直接的相互调用。

  • 里式替换原则

子类不要重写父类方法,否则就要定义更加基础的基类,通过依赖、聚合、组合来实现。

  • 合成复用原则

不要重复造轮子,尽量使用组合或者聚合关系实现代码复用,少使用继承。

三、GoF 23种设计模式分类

《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为”四人组(Gang of Four)”,而这本书也就被称为”四人组(或 GoF)”书。

1、创建型模式

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

2、结构型模式

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

3、行为型模式

  • 策略模式
  • 模板方法模式
  • 观察者模式
  • 迭代器模式
  • 责任链模式
  • 命令模式
  • 备忘录模式
  • 状态模式
  • 访问者模式
  • 中介者模式
  • 解释器模式

发表评论