软件架构、开发框架和设计模式三者的关系

概念


软件架构:架构又称软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。不仅显示了软件需求和软件结构之间的对应关系,而且指定了整个软件系统的组织和拓扑结构,提供了一些设计决策的基本原理。说白了架构就是根据当前业务的特点,以现有的人力成本和硬件成本就能实现,并且在未来内能满足业务需求,高性能、高可用、易维护,易扩展的需要。


开发框架:软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的开发框架类型。开发框架不是现成可用的应用系统。而是一个半成品,提供了诸多服务。框架就像是一套提供诸多工具的基础设备,开发人员使用其提供的工具完成业务逻辑的编码,实现应用系统的功能。


设计模式:是一套被反复使用、代码设计经验的总结,它强调的是一个设计问题的解决方法。使用设计模式是为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。


关系


软件架构、开发框架、设计模式他们三者的关系在项目中应该时层层递进,被前者包含的。


软件架构应该是一个范畴最大的概念,是最高层次的设计。


一个软件架构设计中可能会用到多个框架和多个设计模式;而开发框架是针对共性抽象出来的半成品,提供了各种业务实现所需的基础功能,如路由、请求、响应、数据库、模型、视图、模板等,甚至还提供了一些通用的业务实现,如验证码、文件上传、图片裁剪等,而开发框架的实现本身就包含着多个设计模式。


到具体的业务代码编写中,设计模式也会被广泛使用以提高代码的易维护,易扩展。


所以我们在做一个项目的时候首先出来的应该是软件架构,是对整个问题的一个总体上的设计,之后再会考虑运用什么样的框架和设计模式来实现我们的软件架构;当然,你也可以不使用任何的开发框架,那将意味着你需要将开发框架实现的功能在项目中自行实现。


软件架构、开发框架、设计模式都是为了软件项目生命周期可持续服务的。只是各自的侧重点略有不同。


他们时软件工程发展的产物,在一个项目中软件架构是必须的,但开发框架跟设计模式并不是必需的,正如上面所说,使用他们是为了提高代码的易维护,易扩展,但是如果仅仅在追求代码的运行速率,同一个业务,不使用任何框架、不使用任何设计模式的代码时运行速度最快的。


对于软件架构、开发框架、设计模式你有什么看法,欢迎留言讨论。