架构的灵活扩展性核心在于面向抽象设计
阅读引导:
1、程序架构的灵活扩展性,核心在于封装变化
2、封装变化,最主要的手段就是将变化抽象
今天聊一聊架构设计的灵活扩展性。
老规矩,还是来看一下定义:
扩展性(Extensibility),指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。
表现在系统的基础设施稳定不需要经常变更,应用之间较少依赖和耦合,对需求变更可以敏捷响应。是系统架构层面的开闭原则,考虑未来功能扩展时,当系统增加新功能时,不需要对现有系统的结构和代码进行修改。
1
常见实例
我们常见的例子,程序员经常使用的eclipse平台,还有非常火爆的 VS Code,都是使用的“微内核+插件”的方式,支撑了无比丰富的生态。
在任何一个平台上,安装了对应的插件以后,可以做相应领域的开发。
很显然eclipse和VSCode的设计理念,是面向插件设计的思路。
这个“插件”是一个抽象的概念,是一套标准,任何实现了这一套标准的实例,都可以发布后在平台上应用。
实际上,我们开发过程中,也一直使用很多标准。
一个例子,日志领域的SL4J是一套标准,然后logback、log4j是具体的实现。
但是这些内容