xChar
·20 days ago

使用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直接使用接口实现的.

Loading comments...