Java应用架构读书笔记(6):实现复用

 由  罗俊杰 发布

复用

最大化的复用必然导致可用性的复杂化。模块可复用,必然要求模块具有灵活性,而灵活性会导致复杂性提高。 如何处理复用性和可用性之间的平衡是一个复杂的问题,而这个问题跟依赖有关。

我们在复用方面已经做了大量的工作。今天我们有大量的框架可供选择,比如Web框架,ORM框架,安全框架等。这些框架主要解决的是横向的问题,即主要关注基础设施和样例代码,但是对垂直的业务问题缺乏有效的解决方案。

粒度

粒度指的是系统分解为部分的程度。粗粒度的模块比细粒度的模块具有更丰富的行为。

粗粒度的模块更易于使用,而细粒度的模块更易于复用

量级

量级指的是一个模块依赖于环境的程度

重量级模块依赖于其操作环境,而轻量级模块尽量避免这些依赖。

重量级模块更易于复用,而轻量级模块更易于使用。

比如一个可以运行在多个环境下的模块,必然要求把环境相关的依赖从代码转移到配置中去。这样模块复用性更好,但是在使用时就需要为对模块进行配置以适应特定的运行环境,可用性上就更为复杂了。

粒度和量级是考虑复用性和可用性的关键因素。

模块弹性

通过细粒度的模块更容易识别系统变化的影响,但是过于轻量级和细粒度的模块会使得模块以及依赖的增多,使得系统更难使用。

通常情况下,逻辑设计影响可扩展性,而物理设计影响可用性和复用性。

模块化通常可以驱动类设计的决策

查看评论