以下是阎宏博士在csdn一个关于构架与框架概念的讨论中的发言,对我们理解这两个概念很有帮助!
【程序编程相关:MySQL的历史】 【推荐阅读:VC在windows下编写用于串行通讯的】 【扩展信息:VC下设置Excel单元格的边框】 “ 架构:architecture 框架:framework软件的大尺度结构就是架构.一个软件不管好坏,都会有一个架构.软件架构中可以利用框架,也可以不利用框架.譬如jsp就是一种框架,而你的系统可以利用jsp框架,形成自己的架构.
所有的framework都是遵循好莱坞原则设计的,否则就不叫framework.所谓好莱坞原则,说的是you don´t call us - we will call you. 意思就是在一个framework下的代码,都是被动地被framework调用,而不是相反.通过这种方式,大量重复的代码就可以隐藏在framework里面,需要特别设计的代码以预定接口的方式交给开发人员,写好后由framework调用.
譬如jsp就是一个framework.你写的jsp脚本会被jsp引擎编译成servlet的一部分.这种servlet都带有大量重复的代码,是jsp程序员不需要考虑的,由framework负责.
” “ 如果用房屋作比喻,架构就是忽略掉细节的抽象建筑结构,在图纸可以看到,存在于人脑之中,不体现为房屋的某一个物理部分.架构师就是建筑设计师,英文都是architect.软件架构师:software architect
建筑设计师:building architect框架是房屋的骨架,房屋的骨架是物理存在的.
卡尔.马克思在«资本论»中说,蜜蜂建造的蜂房可以使人类最杰出的建筑黯然失色,但是最蹩脚的建筑设计师也胜过蜜蜂,因为在设计师开始设计之前,房屋的架构就已经存在于设计师的脑中了.
马克思的意思是说人类的设计是有目的的活动,而蜜蜂不是.马克思所说的这个存在于人类脑中的,是架构不是框架.房屋的框架如果掉到了人脑里,哪怕是一小部分,人就死了.
“ “ 下面摘自我的一本书,一直没有工夫完成.第1.1节.什么是架构
什么是软件系统的架构(architecture)?一般而言,架构有两个要素:  它是一个软件系统从整体到部分的最高层次的划分. 一个系统通常是由元件组成的,而这些元件如何形成.相互之间如何发生作用,则是关于这个系统本身结构的重要信息. 详细地说,就是要包括架构元件(architecture component).联结器(connector).任务流(task-flow).... 下一页