私は 3 つのクラスを持っています。各クラスは、特定の継承された能力に対して個別に継承できます。
ただし、2 つのクラスを 3 番目のクラスに継承して、他の 2 つの機能とそのデフォルトのロジック実装を含む「スーパー」クラスを作成できます。
コーディングロジックを一元化するための最良のアプローチは何ですか?
以下に示すように、Class2
は、私が組み込んだものの蒸留形式ですClass3
。インターフェイスを開発し、実装ごとにロジックを何度も実装する代わりに、プロパティの検証ロジックを 1 つの場所に実装したいと考えています。
Class2
単体での使用はもちろん、 との併用も可能なシチュエーションがありClass1
ます。各クラスには独自の用途がありますが、 &をClass3
組み合わせて、両方のクラスの機能を組み合わせた究極の実装を実現します。2
1
public mustinherit class Class1(of T as {New, Component})
private _prop as T
public sub New()
...
end sub
protected friend readonly property Prop1 as T
Get
..validation..
return me._prop
end get
end property
end class
public mustinherit class Class2
private _prop as short
public sub new(val as short)
me._prop = val
end sub
protected friend readonly property Prop2 as short
get
return me._prop
end get
end property
end class
現在の Class3 実装:
public mustinherit class Class3(of T as {New, Component})
Inherits Class1(of T)
'Distilled the logic design below into its own MustInherit class cause this design
' by itself is useful without Clas1 implementation.
private _prop as Short <--- Same as Class2._prop
public sub New(val as short)
me._prop = val
end sub
protected friend readonly property Prop2 as short
get
return me._prop
end get
end property
end class
@Servy ごと:
クラス1public mustinherit class Data(of T as {New, Component})
...
end class
クラス2
public mustinherit class Brand
...
end class
クラス3
public mustinherit class BrandData(of T as {New, Component})
inherits Data(Of T)
...
end class