0

私がOOPに本当に慣れていないのを見て、これはもっとよく知っていれば回避できたはずです。私はクラス ライブラリで約 1 年を開始し、それを Tree と呼ぶ Class Lets を作成しました。今まで Tree クラスは正常に動作しており、まさに私が必要としているものを実行します。

さて、今、私はさまざまな種類のツリーを持っていることに気付きました

ツリーのいくつかの機能を独自の名前空間に移動し、これらの他のツリー用に新しい機能を作成したいと思います。現在のツリーを既に実装しているシステムを壊さずにこれを行うにはどうすればよいですか?

既存の通話から新しい通話に「転送」できる方法はありますか

4

1 に答える 1

0

ツリーの新しいタイプによっては、一部の機能を実行する Tree インスタンスを含むスーパーツリーを持つことができますが、スーパーツリーに固有の追加機能を提供します。内部 Tree インスタンスで直接処理する関数のラッパー メソッドを記述して、「転送」を呼び出します。

場合によっては、SuperTree が Tree から派生することも理にかなっていますが、これは、Tree がこの種の拡張性を念頭に置いて設計されており、Tree の代わりに SuperTree を渡したい場合に限られます。

次のように考えてください。

  • 建物は鉄骨を含み、それに依存している場合がありますが、それは鉄骨の一種ではありません。

  • ホテルは建物の一種なので、ドアや窓など、建物に備わっているものがあります。

ツリーがより大きなシステム (建物のフレーミング) のコンポーネントに似ている場合は、新しいクラスのプライベート メンバーとして構成することで、その機能を拡張します。拡張ポイントが明確に定義された独自のリッチ エンティティである場合は、既存の動作を単純に拡張する新しいクラスを Tree から派生させることができます。

于 2010-12-10T01:13:24.673 に答える