1.前言
最近打算着手写一些计算机基础的文章,以前自己总是着重于某某一种技术,随着工作时间的推移,发现其实万变不离其宗,掌握一门高级编程语言,然后计算机基础(相关数据知识,数据结构,操作系统,组成原理,编译原理等)扎实掌握,然后搭配合理的设计模式,其实编程并没有想象中的那么难。针对这些知识的使用频率,我决定从设计模式着手写起,与大家一起探讨编程的艺术之美。由于本人也是毕业多年,这些东西也需要重拾,有的地方见解不对之处,还忘指出。
2.架构、框架和设计模式
要想学设计模式,我们还需要分清三个概念:架构、框架和设计模式。其实我相信应该有70%以上的人根本分不清这三个概念。下面就让我为大家娓娓道来。
2.1.概念
架构:简单的说架构就是一个蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用。
框架:软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架不是现成可用的应用系统。而是一个半成品,提供了诸多服务,开发人员进行二次开发,实现具体功能的应用系统。像学Java的同学们肯定不陌生SSH,Spring等。
设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,它强调的是一个设计问题的解决方法。比如:工厂模式,模板方法模式,建造者模式等。
设计模式分6大原则:
23种设计模式:
2.2.三者之间的关系
2.2.1.框架与架构关系
首先说框架不是架构,应该说框架比架构更具体,更偏重于技术,而架构偏重于设计。还有一个关系就是架构可以通过多种框架来实现。
2.2.2.框架与设计模式关系
设计模式研究的是针对单一问题的设计思路和解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。
2.2.3.架构与设计模式关系
两者的关系也是很好区分的,设计模式主要是针对单一问题的解决方法,范畴比较小,而架构是高层次的针对体系结构的一种设计思路,范畴比较大。可以这么说,一个架构中可能会出现多个设计模式来解决多种架构中的问题。
三者关系:
通过上面的分析,我们能够知道他们之间的区别还是有很多,首先架构应该是一个范畴最大的概念,是最高层次的设计。一个架构设计中可能会用到多个框架和多个设计模式;而框架是针对共性抽象出来的半成品,这里面可能包含着多个设计模式;而设计模式就是解决单一问题的设计思路和解决方法。
所以我们在做一个项目的时候首先出来的应该是架构,是对整个问题的一个总体上的设计,之后再会考虑运用什么样的框架和设计模式来实现我们的架构;当然,只使用框架和设计模式中的一种也是经常遇到的。
他们三者的共同点都是解决现实生活中的问题而出现的,而且在架构设计和框架设计还有设计模式中都会表现出来的就是“高内聚,低耦合”的理念;所以他们的共同点就是让我们的设计更面向对象化。
3.总结
通过上面介绍,我们知道了要想设计好的工程,好的架构是前提,但是抽丝剥茧之后,我们会发现其实,最终落实到细节上还是设计模式体现出来的,所以学好设计模式是十分关键的,在接下来的日子里,会为大家将20多种设计模式各个击破,让我们一起努力吧,段位低不要紧,只要肯吃苦肯联系,虐青铜,打白银,撸黄金,虐铂金,过钻石,上王者,分分钟超神的。
转载请注明出处:http://vicentz.cn
参考文献:
架构、框架和设计模式关系
设计模式六大原则
设计模式的分类