转载 Unity高阶-游戏常用设计模式

60 篇文章 2 订阅
2 篇文章 0 订阅

转载  原文地址https://www.jianshu.com/p/b6b92da504d1

原作者:沉麟

 

 

 

Unity高阶-游戏常用设计模式

 

模式的诞生

模式(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),旨在用模式来统一沟通面向对象方法在分析、设计和实现间的鸿沟

大三律(Rule of Three)

只有经过3个以上不同类型(或不同领域)的系统的校验,一个解决方案才能从候选模式升格为模式

设计模式的发展

从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……

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

越来越多的关于设计模式的书籍和网站。

设计模式

设计模式是在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案更清晰的描述了对象和类之间的相互作用。

设计模式(Design Pattern)定义:

是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结

是一种用于对软件系统中不断重现的设计问题的解决方案进行文档化的技术

是一种共享专家设计经验的技术

目的:为了可重用代码、让代码更容易被他人理解、提高代码可靠性

设计模式的基本要素

设计模式一般包含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式等基本要素,

4个关键要素如下:

模式名称 (Pattern Name)

问题 (Problem)

解决方案 (Solution)

效果 (Consequences) 

设计模式分类

根据目的

根据目的(模式是用来做什么的)可分为创建型(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) ★☆☆☆☆

根据范围

根据范围,即模式主要是处理类之间的关系还是处理对象之间的关系,可分为类模式和对象模式两种:

类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是一种静态关系

对象模式处理对象间的关系,这些关系在运行时变化,更具动态性

 

设计模式的优点

融合了众多专家的经验,并以一种标准的形式供广大开发人员所用

提供了一套通用的设计词汇和一种通用的语言,以方便开发人员之间进行沟通和交流,使得设计方案更加通俗易懂

让人们可以更加简单方便地复用成功的设计和体系结构

使得设计方案更加灵活,且易于修改

将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本

有助于初学者更深入地理解面向对象思想,方便阅读和学习现有类库与其他系统中的源代码,还可以提高软件的设计水平和代码质量



作者:沉麟
链接:https://www.jianshu.com/p/b6b92da504d1
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值