下の図のような例を私が実際に使っているプロジェクトにしました。私はこのプロジェクトをC++で実装しています。インターフェイスを取得中にクラスへのエクスクルードを防止する
この例の主なポイントは、FruitGarden
があり、そのうちの1つが常にAppleTree
であることがわかっています。 FruitGarden
の機能StartHarvesting
では、AppleTree
が収穫の準備が整っているかどうかを確認する必要があります。この目的のために、私はインターフェイスクラスを作成しました。
ここでインターフェイスを使用している方法は、GetTreePointer
をVegitation
に実装し、IFoodTree
にキャストして(NULLをチェックする)ことです。私が見ている問題は、Vegitation
以外で使用しようとしていない他のパブリック関数の呼び出しを可能にして、私がフル・ツリーを(GetTreePointer
を実装することによって)外部に公開していることです。
私の主な質問は:AppleTree
を指しているインターフェイスIFoodTree
を取得する最善の方法は何ですか?
読みやすくするために編集しましたが、私はUMLを更新できないので、 "Vegitation"(=>植生)を残しました。 – MSalters