设计模式 概述

导读:

    设计模式描述了软件设计过程中某一类常见问题的一般性解决方案。

      面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。

                                                                                                                                                                                                                                             以下所讲设计模式即指“面向对象设计模式”。                                                                


定义:

模式(Pattern)—从生产经验和生活中经验中经过抽象升华提炼出来的核心知识体系,也可以看作是解决某一类问题的方法。把解决某类问题的方法总结归纳到理论高度,就是模式。模式是一种指导

特点:

  1. 在特定的场景下有可重用性,对相同类型不同问题的环境,其解决方案都有效。
  2. 可传授性,即问题出现的机会很多,解决问题的方案相同,人们相对可以接受。
  3. 有表示模式的名称。
   “设计模式(Design pattern)”也是一种模式,是一套呗反复使用、多数人知晓、经过分类编目的、代码设计经验的总结。

在软件开发中使用频率较高的23种设计模式,旨在用模式来统一沟通面向对象方法在分析、设计和实现间的鸿沟。

设计模式的基本要素:

对于一个新的模式,它必须满足大三率(Rule of Three):一个解决方案必须在三个完全不同类型或者不同领域的系统中得以应用才有资格成为候选模式。
四种基本要素:
  1. 模式名称

模式名称(pattern name)是一个助记名,它用一两个词来描述模式的问题。解决方案和效果。

  1. 问题

问题(problem)描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法;也可能描述了导致不灵活设计的类或对象结构。

  1. 解决方案

解决方案(solution)描述了设计的组成成分,他们之间的相互关系及各自的职责和协作方式 。

  1. 效果

效果(consequences)描述了模式应用的效果及使用模式应权衡的问题。模式效果包括它对系统的灵活性、扩充性或可移植性的影响。

列如,观察者模式:

  • 名称——观察者。
  • 问题——定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖泰德对象都得到通知并被自动更新。
  • 解决方案——主题(Subject)接口、观察者接口、具体主题、具体观察者。
  • 效果——一个对象的状态发生改变,所有的依赖对象都将得到通知,讲观察者和观察者解耦,保证高度的协作。











你可能感兴趣的:(Java,设计模式)