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 Application {
	component アプリケーション {
	}
	component 機能 {
	}
	アプリケーション --> 機能
	機能 --> 防腐層
}

image
Kotlin のパッケージの可視範囲により、機能コンポーネントがインターフェース実装を直接使用することを防ぐことができるため、Kotlin を使用する場合はインターフェース実装を独立したコンポーネントに分離する必要はありません。コンポーネントの数が減少し、理解とメンテナンスが容易になります。

注意#

Kotlin のパッケージの可視範囲は Kotlin にのみ有効であり、Java が Kotlin で書かれたライブラリを使用する場合、Java がインターフェース実装を直接使用することを防ぐことはできません。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。