Unity3D_设计模式简介

设计模式的诞生与定义

模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。

每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,人们可以无数次地重用那些已有的解决方案,无须再重复相同的工作。

模式(Pattern)起源于建筑业而非软件业 
模式之父——美国加利佛尼亚大学环境结构中心研究所所长Christopher Alexander博士《A Pattern Language: Towns, Buildings, Construction》——253个建筑和城市规划模式

软件模式概述 
20世纪80年代末,软件工程界开始关注Christopher Alexander等在这一住宅、公共建筑与城市规划领域的重大突破。 
1994年“四人组(Gang of Four,GoF,分别是Erich Gamma, Richard Helm, Ralph Johnson和John Vlissides)”归纳发表了23种在软件开发中使用频率较高的设计模式(Design Pattern),旨在用模式来统一沟通面向对象方法在分析、设计和实现间的鸿沟 
Unity3D_设计模式简介_第1张图片


软件模式概述

Unity3D_设计模式简介_第2张图片


设计模式的发展

设计模式的发展 
从1995年至今,设计模式在软件开发中得以广泛应用, 
在Sun的Java SE/Java EE平台和Microsoft的.NET平台设计中应用了大量的设计模式 
轻量级架:Struts、Spring、Hibernate、JUnit、NHibernate、NUnit …… 
语言:C++、Java、C#、Objective-C、 VB.net、Smalltalk、PHP、 Delphi、JavaScript、Ruby……

设计模式得到越来越多的企业和高校的关注与重视。 
越来越多的关于设计模式的书籍和网站。


设计模式

解决同一种类型的问题


设计模式的基本要素

设计模式一般包含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式等基本要素, 
4个关键要素如下: 
模式名称 (Pattern Name) 
问题 (Problem) 
解决方案 (Solution) 
效果 (Consequences)


设计模式的分类

1.根据目的
   根据目的(模式是用来做什么的)可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三类:
 创建型模式主要用于创建对象
 结构型模式主要用于处理类或对象的组合
 行为型模式主要用于描述类或对象如何交互和怎样分配职责
      - 创建型模式
          抽象工厂模式(Abstract Factory) ★★★★★
          建造者模式(Builder) ★★☆☆☆
          工厂方法模式(Factory Method) ★★★★★
          原型模式(Prototype) ★★★☆☆
          单例模式(Singleton) ★★★★☆ 
      - 结构型模式
        适配器模式(Adapter) ★★★★☆
        桥接模式(Bridge) ★★★☆☆
        组合模式(Composite) ★★★★☆
        装饰模式(Decorator) ★★★☆☆
        外观模式(Facade) ★★★★★
        享元模式(Flyweight) ★☆☆☆☆
        代理模式(Proxy) ★★★★☆
      - 行为型模式
        职责链模式(Chain of Responsibility) ★★☆☆☆
        命令模式(Command) ★★★★☆
        解释器模式(Interpreter) ★☆☆☆☆
        迭代器模式(Iterator) ★★★★★
        中介者模式(Mediator) ★★☆☆☆
        备忘录模式(Memento) ★★☆☆☆
        观察者模式(Observer) ★★★★★
        状态模式(State) ★★★☆☆
        策略模式(Strategy) ★★★★☆
        模板方法模式(Template Method) ★★★☆☆
        访问者模式(Visitor) ★☆☆☆☆



2. 根据范围
 根据范围,即模式主要是处理类之间的关系还是处理对象之间的关系,可分为类模式和对象模式两种:类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是一种静态关系
 对象模式处理对象间的关系,这些关系在运行时变化,更具动态性

设计模式的优点

融合了众多专家的经验,并以一种标准的形式供广大开发人员所用 
提供了一套通用的设计词汇和一种通用的语言,以方便开发人员之间进行沟通和交流,使得设计方案更加通俗易懂 
让人们可以更加简单方便地复用成功的设计和体系结构 
使得设计方案更加灵活,且易于修改 
将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本 
有助于初学者更深入地理解面向对象思想,方便阅读和学习现有类库与其他系统中的源代码,还可以提高软件的设计水平和代码质量

你可能感兴趣的:(Unity3d)