软件发展到现在,几乎没有项目再从刀耕火种开始,多少都会采用现成的、开源的或自开发的软件框架,同时,也越来越重视软件架构的建立。
软件架构
一个软件里有处理计算的、处理界面的、处理业务规则的、处理安全的等许多可逻辑划分的部分。
软件架构(Architecture)的意义就是要将这些课逻辑划分的部分独立出来,用约定的接口和协议将它们有机地结合在一起,形成职责清晰、结构清楚的软件结构。软件架构是一个框架描述,它可能并无可执行部分。大部分的软件架构都是由一个设计思想,加上若干设计模式,再规定一系列的接口规范、传输协议、实现标准等。
软件框架
当一个软件架构形成以后,就会有厂商根据软件架构来实现这个架构,开发出若干可执行的半成品,这就是软件框架(Framework)。软件框架是针对一个普遍问题的最佳实践或解决方案。
软件架构 | 软件框架 |
---|---|
MVC是一种设计思想,它将应用程序划分为实体、控制、视图三个逻辑部件 | SSH web应用框架:Spring、控制器框架:Struts、数据访问层框架:Hibernate |
类库(Library)
提供某一个问题的解决方案,一系列函数的组合。例如Jquery、MFC。
架构、框架、类的区别
以写ppt为例,假设我们要求ppt遵循MetroUI设计风格,这就是架构;去网站上down一个基于Metro风格的ppt模板,这个模板就是框架;现在我们只需要在模板上填充内容,假设我需要插入大量的图表,现有模板不完全满足,所以我去down一批图表过来使用,这就是类库。
You call library. Framework calls you.