先谈架构、框架、设计模式?
架构
又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件,各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。
架构描述语言(ADL)用于描述软件的体系架构,ADL的基本构成包括组件、连接器和配置。
框架(Framework)
是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;或者说是可被应用开发者定制的应用骨架。一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文关系。所以,框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。
应用框架是实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务,它强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软甲重用。应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。框架的粒度越大,其中包含的领域知识就更加完整。
简单说,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。
框架可分为白盒(White-Box)与黑盒(Black-Box)两种框架。
设计模式(Design Pattern)
是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案。
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性;设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
基本模式:工厂模式、抽象工厂设计模式、单例模式、原型模式、建造者模式等。
框架和设计模式的对比
框架、设计模式这两个概念容易被混淆,其实它们之间还是有区别的。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对设计模式而言只有实例后才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一设计模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的内容。