说在前面
前期回顾
sharding-jdbc源码解析 更新完毕
spring源码解析 更新完毕
spring-mvc源码解析 更新完毕
spring-boot源码解析 更新完毕
rocketmq源码解析 更新完毕
dubbo源码解析 更新中
rocketmq源码解析系统架构篇 计划中
dubbo源码解析系统架构篇 计划中
sharding-sphere源码解析 计划中
github https://github.com/tianheframe
rocketmq 更新完毕
dubbo 更新中
spring-cloud-tianhe 从0到1实现一套微服务组件 更新中
mq-tianhe 从0到1实现一个mq框架
rpc-tianhe 从0到1实现一个rpc框架
本次介绍下系统架构设计之道之高内聚、低耦合。
言归正传
我们天天说的高内聚、低耦合,那么到底什么是高内聚低耦合呢,高内聚、低耦合是一种架构思想。
高内聚,从系统架构层次说的是系统的复用性,也就是java的封装、框架思想,从封装一个方法、一个工具类、一个jar包、一个微服务、到一个可以独立运行的框架,架构界里有句话,任何复用性的系统架构都有一个前置系统,前置层是用来处理非共用的逻辑,也就是适配层,有的使用业务前置,有的技术前置,微服务的网关服务可以理解为是技术前置,既然有前置处理层那就说明复用性是有边界的,那么这个边界怎么来区分呢,先卖个关子,下面介绍了低耦合之后在说。
低耦合,从系统架构层次说的是系统的扩展性,怎么保证系统的扩展性呢,常用的设计原则就是单一职责、开闭原则,开闭原则常用的设计模式 模板方法、适配器、装饰器、职责链等。
高内聚、低耦合我认为从系统架构层次应该先保证扩展性,在保证复用性,否则复用性也就失去了意义,那么扩展性、复用性的边界是什么呢,单一职责,单一职责可以业务层、也可以是技术层,在详细的说,可以是按业务功能维度、技术功能维度去确定这个封装的边界。
说在最后
本次解析仅代表个人观点,仅供参考。
![079dfb78b4283da52b73a87a7833363a.gif](https://img-blog.csdnimg.cn/img_convert/079dfb78b4283da52b73a87a7833363a.gif)
扫码进入技术微信群
![194c9e997e2b2d09c0b00c9b38d6a671.png](https://img-blog.csdnimg.cn/img_convert/194c9e997e2b2d09c0b00c9b38d6a671.png)
![462649f07fda0c83db966999bd68a12d.png](https://img-blog.csdnimg.cn/img_convert/462649f07fda0c83db966999bd68a12d.png)
![728da1d3d282be97689618476e3f8a36.png](https://img-blog.csdnimg.cn/img_convert/728da1d3d282be97689618476e3f8a36.png)