Unity_设计模式_简介_01
来源:互联网 发布:js object 键 值 编辑:程序博客网 时间:2024/05/22 07:41
设计模式概述:
经验,套路
模式是在某种情景下,针对某问题的解决方案。
模式的诞生和定义:
模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,人们可以无数次地重用那些已有的解决方案,无须再重复相同的工作。
模式(Pattern)起源于建筑业而非软件业
模式之父——美国加利佛尼亚大学环境结构中心研究所所长Christopher Alexander博士《A Pattern Language: Towns, Buildings, Construction》——253个建筑和城市规划模式
软件模式概述
20世纪80年代末,软件工程界开始关注Christopher Alexander等在这一住宅、公共建筑与城市规划领域的重大突破
“四人组(Gang of Four,GoF,分别是Erich Gamma, Richard Helm, Ralph Johnson和John Vlissides)”于1994年归纳发表了23种在软件开发中使用频率较高的设计模式,旨在用模式来统一沟通面向对象方法在分析、设计和实现间的鸿沟
三次规则(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)
设计模式的优点 :
融合了众多专家的经验,并以一种标准的形式供广大开发人员所用
提供了一套通用的设计词汇和一种通用的语言,以方便开发人员之间进行沟通和交流,使得设计方案更加通俗易懂
让人们可以更加简单方便地复用成功的设计和体系结构
使得设计方案更加灵活,且易于修改
将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本
有助于初学者更深入地理解面向对象思想,方便阅读和学习现有类库与其他系统中的源代码,还可以提高软件的设计水平和代码质量
- Unity_设计模式_简介_01
- Unity_设计模式简介_025
- Unity_设计模式_设计原则_02
- Unity_设计模式_状态模式_05
- Unity_设计模式_外观模式_06
- Unity_设计模式_工厂模式_07
- Unity_设计模式_观察者模式_08
- Unity_设计模式_对象池_09
- Unity_设计模式_有限状态机_010
- Unity_设计模式_单例模式_04
- 面向对象思想设计_计算器小程序(设计模式入门篇_01)
- Unity_单例设计模式_027
- Unity_简单工厂设计模式_029
- Unity_设计模式_UML类图_03
- 创建型设计模式_01--工厂模式
- 学习设计模式_01 GOF, 设计模式和J2EE
- Unity_引擎简介_001
- Unity_状态模式_028
- 爹地的实验:实验一: 数据结构实验一线性表的基本操作实现及其应用
- java学习第三天
- HDU 4740 The Donkey of Gui Zhou 暴力
- 深度学习在计算机视觉方向的前沿应用
- 美剧在中国那些事
- Unity_设计模式_简介_01
- JSP学习之Java Web中的安全控制实例详解
- 微信小程序循环请求api
- 2017-09-21 LeetCode_033 Search in Rotated Sorted Array
- GeekBand笔记-《STL与泛型编程 》 第五周
- DNS主从、子域授权,转发实验
- memcached缓存失效get_miss
- StringBuilder和String的区别
- troubleshooting之解决各种序列化导致的报错