Kotlin による防腐層デザインの簡略化#
Kotlin の参照#
[[Xlog の使用方法 - PlantUML レンダリング]]
Java の防腐層#
package 防腐層{
component インターフェース {
interface インターフェース定義
}
component 実装 {
class インターフェース実装
}
インターフェース実装 --|> インターフェース定義
}
package Application {
component 機能 {
}
component アプリケーション {
}
}
機能 --> インターフェース
アプリケーション --> 機能
アプリケーション --> 実装
機能コンポーネントがインターフェース実装を直接使用しないようにするために、インターフェース実装を独立した実装コンポーネントに分離する必要があります。機能コンポーネントはインターフェースコンポーネントにのみ依存します。
Kotlin の防腐層#
package 防腐層{
interface インターフェース定義
class インターフェース実装
note left: パッケージの可視範囲
インターフェース実装 --|> インターフェース定義
}
package Application {
component アプリケーション {
}
component 機能 {
}
アプリケーション --> 機能
機能 --> 防腐層
}
Kotlin のパッケージの可視範囲により、機能コンポーネントがインターフェース実装を直接使用することを防ぐことができるため、Kotlin を使用する場合はインターフェース実装を独立したコンポーネントに分離する必要はありません。コンポーネントの数が減少し、理解とメンテナンスが容易になります。
注意#
Kotlin のパッケージの可視範囲は Kotlin にのみ有効であり、Java が Kotlin で書かれたライブラリを使用する場合、Java がインターフェース実装を直接使用することを防ぐことはできません。