Java设计模式

设计模式概述

设计模式(Design Pattern)是人们在长期的软件开发中对一些经验的总结,是对特点问题经过实践检验的特定解决方法。就像兵法中的三十六计,总结了多种对战争中某些特定的可能性计谋战术。设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术方案总结成设计模式,也会是其他开发者更加容易理解其设计思路。设计模式是可复用的面向对象软件的基础,帮助开发者做出有利于系统复用的选择,避免损害系统复用性的设计。简言之,设计模式可以帮助设计者更快、更好地完成系统设计。

        目前所说的设计模式通常是指GoF设计模式。GoF(Gang of Four,四人组)指的是Design Pattern: Elements of Reusable Object-Oriented Software 这本书的4位作者:Gamma、Helm、Johnson和Vlissides,书中总结了23种经典设计模式,因此也被称为GoF设计模式。

这23种设计模式有两种分类方式

 (1)根据目的划分,即根据设计模式是用于完成何种工作来划分。这种方式可分为创建型模式、结构型模式和行为型模式3种

  • 创建型模式:用于描述“如何创建对象”,其主要特点是“将对象的创建与使用分离”。
  • 结构型模式:用于描述如何将类或对象按某种布局组成更大的结构。
  • 行为型模式:用于描述类或对象之间如何相互协作,共同完成单个对象无法独立完成的任务,以及如何分配职责。

(2)根据作用范围划分,即根据设计模式主要作用于类上还是主要作用于对象上来划分。这种方式可分为类模式和对象模式两种。

  • 类模式:用于处理类与子类之间的关系,这些关系通过继承来建立,是静态的,在编译时刻便确定下来了。
  • 对象模式:用于处理对象之间的关系,这些关系可以通过组合或聚合来实现,在运行时是可以变化的,更具有动态性。
范围\目的 创建型模式 结构型模式 行为型模式
类模式

工厂方法

(类)适配器

模板方法
对象模式

单例

原型

抽象工厂

建造者

代理

(对象)适配器

桥接

装饰

外观

享元

组合

策略

命令

职责链

状态

观察者

中介者

迭代器

访问者

备忘录

面向对象设计原则

1.单一职责原则

单一职责原则规定一个类应该有且仅有一个引起它变化的原因,简单来说,一个类应该只负责应该职责;否则,类应该被拆分。

2.开闭原则

开闭原则是面向对象设计模式中最基础的设计原则,开闭原则规定一个软件实体,如类、模块和函数,应该对拓展开发,对修改关闭(在不修改原有代码的情况下增加新的功能)。

3.里氏替换原则

里氏替换原则是面向对象设计的基本原则之一,是继承复用的基石。该原则规定所有引用基类的地方必须透明地使用其子类的对象。

4.依赖倒置原则

依赖倒置原则的核心思想是:依赖于约定而不依赖于具体实现,即面向接口编程。对象的依赖关系有3种传递依赖方式。(Spring中将依赖对象通过构造注入和setter注入)

  •  通过构造方法传递依赖对象,即构造方法的参数是需要依赖的接口类型
  • 通过setter方法传递依赖对象,即setter方法的参数是需要依赖的接口类型
  • 接口声明依赖,即接口方法的参数是需要依赖的接口类型

如果开闭原则是面向对象设计的目标,那么依赖倒置原则就是实现开闭原则的重要途径之一,他降低了客户与实现模块之间的耦合。

5.接口隔离原则

接口隔离原则要求尽量将庞大臃肿的接口拆分成更小、更具体的接口,让接口中只包含客户感兴趣的方法。

  • 单一职责原则注重的是职责,而接口隔离原则则注重接口依赖的隔离
  • 单一职责原则主要是约束类,它针对的是程序中的实现和细节;而接口隔离原则主要约束接口,主要针对抽象和程序整体框架的构建

6.迪米特法则

迪米特法则又称为最少知道原则,是指一个软件实体应当尽可能少地与其他实体发生相互作用。

7.合成复用原则

合成复用原则是指:尽量使用组件/聚合的方式,而不是继承关系达到软件复用的目的。

你可能感兴趣的:(java,设计模式,开发语言)