vb.net - 継承クラスのオブジェクト集約
-
11-12-2019 - |
質問
私はいくつかのオブジェクトの構成で遊んでいます。
私は2つのクラス(注釈とタスク)を持っています。タスククラスはメモクラスから派生していますタスクはエンドメモです。
各ノートには、既存のノートまたはタスクに追加される可能性がある場合(したがって、この子]メモがタスクまたはメモである可能性がある場合(したがって)プロパティProperty Child as list (of note)
があります(したがって、この 'Child' Note)
IE。
dim x as new note()
x.Child.item(0).Child.item(0).Child.item(0).description.ToString()
.
最後の子ノートオブジェクトは実際にはタスクです。この集約がどのように作業するのでしょうか。そのメモやタスクが気にしないが、ベースまたは拡張クラスの機能を解放したいのですが。
私の即時の考えは、各オブジェクトがタスクのリストとメモのリストを持つ必要があるということでしたが、よりエレガントな解決策があるように感じます。
誰かがこれについての考えを持っていますか?
解決
あなたはメモオブジェクトのコレクションすでにあなたが欲しいものをあなたに与えるべきです。
ノートとタスクを区別する必要がある場合は、インスタンスが 'TypeOf'タスクであるかどうかを尋ねることができ、派生プロパティとメソッドに到達するために適切にキャストできます。
必要なメソッドとプロパティが基本クラスの一部である場合は、キャストする必要はありません、あなたはタイプ適切なメソッド/プロパティを呼び出すために多型に頼ることができます。
他のヒント
正しく理解している場合は、クラスの動作を実装する必要があります。その親または派生クラス。
VB.NET Equivilentは「オーバーライズ可能」と「オーバーライド」です。