プロジェクトのコードを閲覧しているときにBinaryHeap
、2 つの実装 (Array と Tree を使用) がインターフェイス自体の内部にパックされている実装を見つけました。やや複雑に感じました。コードは次のとおりです。
public interface BinaryHeap<T extends Comparable<T>> extends IHeap<T> {
//some variables and other declarations.
public static class BinaryHeapArray<T extends Comparable<T>> implements BinaryHeap<T> {
//Implementation based on Array
}
public static class BinaryHeapTree<T extends Comparable<T>> implements BinaryHeap<T> {
//Implementation based on Tree
}
}
このアプローチに問題はありますか?読みやすさの点でどのように改善できますか?