Hi,
in den meisten Sprachen ist es ja so, dass man einen parametrisierten Konstruktor nicht vererben kann(bei VB auch). Selbst wenn man den Konstruktor der ParentClass aufruft, muss man trotzdem alle Attribute nennen. Jetzt habe ich eine Klassenstruktur mit einem recht umfangreichen Konstruktor in der Oberklasse und bei den Unterklassen variieren nur die Methoden. Da kommt es mir blöde vor immer den Konstruktor von Hand zu kopieren.
Jetzt habe ich mir überlegt eine Setup-Methode einzurichten, die den Konstruktor ersetzt und die dann vererbt werden kann. Der Konstruktor bleibt leer und das Objekt ist solange gesperrt, bis die Setup-Methode aufgerufen ist.
Gibt es noch eine elegantere Alternative, und/oder spricht etwas gegen meinen Ansatz?
Zur Erklärung:
Aus
wird
Der Aufruf ist dann statt
einfach so:
Dann könnte ich load komplett vererben und müsste nicht jedes mal neu definieren, welche Parameter übergeben werden müssen.
in den meisten Sprachen ist es ja so, dass man einen parametrisierten Konstruktor nicht vererben kann(bei VB auch). Selbst wenn man den Konstruktor der ParentClass aufruft, muss man trotzdem alle Attribute nennen. Jetzt habe ich eine Klassenstruktur mit einem recht umfangreichen Konstruktor in der Oberklasse und bei den Unterklassen variieren nur die Methoden. Da kommt es mir blöde vor immer den Konstruktor von Hand zu kopieren.
Jetzt habe ich mir überlegt eine Setup-Methode einzurichten, die den Konstruktor ersetzt und die dann vererbt werden kann. Der Konstruktor bleibt leer und das Objekt ist solange gesperrt, bis die Setup-Methode aufgerufen ist.
Gibt es noch eine elegantere Alternative, und/oder spricht etwas gegen meinen Ansatz?
Zur Erklärung:
Aus
VB.NET-Quellcode
- Public MustInherit Class XY
- 'attributes [...]
- Public Sub New(fkCu As Integer, fkFcg As Integer, lyer As Integer, startd As Date, endd As Date, valType As Integer)
- Me.idCu = fkCu
- Me.IDFcg = fkFcg
- Me.layer = lyer
- Me.startD = startd
- Me.endD = endd
- Me.valueType = valType
- If layer > 2 Then canBeDrilled = False
- End Sub
- End Class
wird
VB.NET-Quellcode
- Public MustInherit Class XY
- 'attributes [...]
- Public Sub New()
- End Sub
- Public Sub setUp(fkCu As Integer, fkFcg As Integer, lyer As Integer, startd As Date, endd As Date, valType As Integer)
- Me.idCu = fkCu
- Me.IDFcg = fkFcg
- Me.layer = lyer
- Me.startD = startd
- Me.endD = endd
- Me.valueType = valType
- If layer > 2 Then canBeDrilled = False
- End Sub
- End Class
Der Aufruf ist dann statt
einfach so:
Dann könnte ich load komplett vererben und müsste nicht jedes mal neu definieren, welche Parameter übergeben werden müssen.
Option strict = on
If it's stupid and it works it ain't stupid.
If it's stupid and it works it ain't stupid.
Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von „Nils_Kr“ ()