设计模式design pattern。
遇到不同问题时的解决办法,前人已经根据经验总结出来。
多种软件设计的指导思想,中心是提高复用性和可维护性。
框架。按照一种或多种设计模式做出来的半成品,把某一领域内,各软件都用得上的部分,做出来,以便维护这里,各软件都能用(复用),不必到各软件的不同位置维护(提高可维护性)。
架构。应用了一种或多种设计模式,一个或多个框架,实现出的软件总体设计。
在学习软件工程的时候,第一次接触到了架构这个概念。当初接触的时候对其的理解是非常浅薄的,因为那时候工程经验比较少,对这样一个深层次的概念还是模糊不清楚的。
随着学习的深入,开始接触了设计模式,也就是那本令我爱上编程的书--《大话设计模式》,书中的小菜和大鸟的清晰的对白,让我犹如身临其境般,一点一点层层递进的认识设计模式,认识面向对象的引以为傲的设计原则。经过了很长时间的学习,深刻的发现设计模式的迷人之处,也感觉到了编程的艺术之美。
在之后,开始学习了SSH框架,第一次感觉到框架的好用之处,也再一次感概那些聪明的人们让编程变得更加轻松,也感慨那些聪明的人们对懒惰的执着和渴望。
其实以前学习的时候,对这三个东东的关系还真的不是非常清晰,总感觉他们非常像,却不太好说清楚他们之间的关系。现在随着不断的学习,不断的积累经验,也对这三者的关系有了个清楚的认识。下面总结一下他们之间的关系。
1. 概念
架构:简单的说架构就是一个蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用。
框架:软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架不是现成可用的应用系统。而是一个半成品,提供了诸多服务,开发人员进行二次开发,实现具体功能的应用系统。
设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,它强调的是一个设计问题的解决方法。
2. 框架与架构关系
首先说框架不是架构,应该说框架比架构更具体,更偏重于技术,而架构偏重于设计。还有一个关系就是架构可以通过多种框架来实现。
3. 框架与设计模式关系
设计模式研究的是针对单一问题的设计思路和解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。
4. 架构与设计模式关系
两者的关系也是很好区分的,设计模式主要是针对单一问题的解决方法,范畴比较小,而架构是高层次的针对体系结构的一种设计思路,范畴比较大。可以这么说,一个架构中可能会出现多个设计模式来解决多种架构中的问题。
5. 总结
通过上面的分析,我们能够知道他们之间的区别还是有很多,首先架构应该是一个范畴最大的概念,是最高层次的设计。一个架构设计中可能会用到多个框架和多个设计模式;而框架是针对共性抽象出来的半成品,这里面可能包含着多个设计模式;而设计模式就是解决单一问题的设计思路和解决方法。
所以我们在做一个项目的时候首先出来的应该是架构,是对整个问题的一个总体上的设计,之后再会考虑运用什么样的框架和设计模式来实现我们的架构;当然,只使用框架和设计模式中的一种也是经常遇到的。
他们三者的共同点都是解决现实生活中的问题而出现的,而且在架构设计和框架设计还有设计模式中都会表现出来的就是“高内聚,低耦合”的理念;所以他们的共同点就是让我们的设计更面向对象化。
所以我们要想做好一个好的项目,那么架构设计、框架设计和使用、设计模式是非常重要的。