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 直接使用接口實現的.

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。