bin^2

bin^2

discord server
twitter

使用kotlin简化防腐层设计

使用 kotlin 简化防腐层设计#

#kotlin 引用
[[我是如何使用 xlog 的 ——plantuml 渲染]]

Java 的防腐层#

package 防腐层{
	component 接口 {
		interface 接口定义
	}
	component 实现 {
		class 接口实现
	}
	接口实现 --|> 接口定义
}
package Application {
	component 功能 {
	}
	
	component 应用 {
	}
}
功能 --> 接口
应用 --> 功能
应用 --> 实现

image
为了防止功能组件直接使用接口实现,需要把接口实现分离到单独的实现组件,功能组件只依赖接口组件

kotlin 的防腐层#

package 防腐层{
	interface 接口定义
	class 接口实现
	note left: package可见范围
	接口实现 --|> 接口定义
}
package Application {
	component 应用 {
	}
	component 功能 {
	}
	应用 --> 功能
	功能 --> 防腐层
}

image
因为 kotlin 的 package 可见范围可以防止功能组件直接使用接口实现,所以使用 kotlin 是不在需要分离接口实现到独立的组件,整体上减少了组件的数量,更容易理解和维护

注意#

kotlin 的 package 可见范围只对 kotlin 有效,所以当 java 使用 kotlin 编写的库时,是无法阻止 java 直接使用接口实现的.

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。