来自《Effective Java》这本书,加上自己的理解
信息隐藏或者说组件的好处:
- 对于其他的组件,隐藏内部数据和其他实现细节
- 把API和实现清晰的隔离开来,只通过API进行通信
- API的好处是可以看做是提供方和调用方两方共同遵守的协议,互相不用知道对方内部细节,就可以使用,而且开发互相独立,就像前端和后端程序员商量好json结构和url一样
信息隐藏的好处:
- 有效的接触组成系统的各个组件之间的耦合关系,即解耦
- 组件化后可以独立的开发、测试、优化、使用、也好理解,也好修改
- 可以并行开发,提高开发速度
- 减轻维护的负担,更快的理解组件,主要是API的含义,
- 调用时不影响其他组件,尤其像微服务这种,实现改变可能对调用方是无感知的,只是一次上线
- 提高了软件的可重用性,就像微服务一样,除了你的系统用,别的系统可能也要用,
- 降低了构建大型系统的风险,即使调用方的系统不可用,其他调用方也不会被影响
- 轻量化,对于微服务而言对方不需要下载你全部的jar包,只需要下载需要的API部分就可以
上面主要说的接口,而类我认为是既然双方的协议定好了,那传输什么需要定一下吧,类就是数据的对象,当然这不是完全对的,只是特定场景是这样的,
问题:
我组长就问过我,以前的系统都是单体的,现在发展成微服务,为什么?
我认为微服务其实也是封装的向外扩展,本质是不变的