🔧谈“框架、设计模式、架构”
00 min
2023-4-22
2024-3-1
type
status
date
slug
summary
tags
category
icon
password

何为框架?

框架就是一组协同工作的类,它们为特定类型的软件构筑了一个可重用的设计。与库和工具包不同之处在于前者侧重设计重用而后两者侧重代码重用。
一个足够复杂的应用软件开发,为确保快速有效,通常采取的方式是:
  • 宏观管理上选取一些框架控制整体的结构和流程;
  • 微观实现上利用库和工具包解决具体的细节问题
框架的意义是什么?
框架使设计者在特定领域的整体设计上不必重新发明轮子;而库和工具包的意义在于使开发者摆脱底层编码,专注特定问题和业务逻辑。
往抽象了说,框架能带来一种新的视角,在混乱中找到秩序,在模糊中找到规律,使用者在使用时如果加以思考,是能得到许多启发的,从而迭代自己的思考框架。
他们不都是提供一套API,那他们之间的区别到底在哪呢?
最大的差别在于,库和工具包是为程序员带来自由的,框架是为程序员带来约束的。具体地说,库和工具包是为程序员提供武器装备的,框架则利用控制反转(IoC)机制实现对各模块的统一调度从而剥夺了程序员对全局的掌控权,使他们成为手执编程武器、随时听候调遣的士兵。
约束一定是坏事吗?
未必。
  • 它让开发更加规范化、工程化、标准化。
  • 它为没有方向的开发者指明道路。
凡事辨证来看,现实世界和计算机世界不一样,不是只有0和1。
 

何为设计模式?

如果说框架和工具包/库是具体的产品,那设计模式和架构就是抽象的思想了!
设计模式是软件的战术思想,针对某些经常出现的问题而提出的行之有效的设计解决方案,它侧重思想重用,因此比框架更抽象、更普适,但多限于【局部】解决方案,没有框架的【整体性】。
推荐网站:
 

何为架构?

至于架构,则是软件的战略决策。一般指一个软件系统的最高层次的整体结构和规划,一个架构可能包含多个框架,而一个框架可能包含多个设计模式。
以后我会花大力气谈论。(挖坑ing🕳️…)