Ich habe ein Schulbeispiel: im einem Projekt ist eine Komponente oft mal verwendet.
z.B.:
public class MyComponent : Component
{
public MyComponent()
{
InitializeComponent();
}
public MyComponent(IContainer container)
{
container.Add(this);
InitializeComponent();
}
....
}
Beim einziehen von dem Komponent auf Form macht VisualStudio automatisch this.mycomponent1 = new test.MyComponent(this.components);.
Das Projekt ist z.B. schon gross und im Einsatzt. Aber dann braucht ein Kunde in der Komponete dass einige Methoden z.B. etwas anders berechnen. Darum würde ich eine neue Klasse ableiten, und im Kundenorden speichern:
public partial class MyComponentKunde1 : MyComponent
{
... hier werden betrefende Methoden geändert
}
Aber überal im Projekt wird nur MyComponent instanziert und ich bräuchte dass irgendwie automatisch wird MyComponet "uminstanziert" auf MyComponentKunde1, falls die Komponet vorhanden ist. Und möchte nicht bei jedem neuen Kunde das gesamte Projekt durchsuchen, wo MyComponent verwenden ist und überal neue Kundenabfrage hinzufügen.
Meine Idee wärre, das die Komponete MyComponet selbe nachschaut, ob es im Kundenordner eine abgeleite Klasse gibt, falls ja, dann die wird anstatt MyComponet verwendet, dass sich die Klasse selbe uminstanziert.
D.h. überal im Projekt bleibt ungeändert die Verwendung von MyComponet this.mycomponent1 = new test.MyComponent(this.components); mycomponent1.RechneEtwas();, aber die abgeleitete Klasse MyComponentKunde1 benutz wird, falls vorhanden.
Die Idee ist, dass die andere Programmier sich nicht kümmern mussen, ob es von der Klasse MyComponet eine Kundenspezifische Ableitung vorhanden ist, die sollen nur MyComponet verwenden wie vorher. Dann sind noch andere Programmier da, die machen Kundenspecifische Ableitungen von Klassen, aber die kümmern sich nich um verwendung von der Komponenten.
Hätte jemand eine Idee, wie kann man das Problem lösen ? Für jede Hilfe bin ich dankbar.
Entschuldigen Sie, bitte meine deutsche Sprache!
z.B.:
public class MyComponent : Component
{
public MyComponent()
{
InitializeComponent();
}
public MyComponent(IContainer container)
{
container.Add(this);
InitializeComponent();
}
....
}
Beim einziehen von dem Komponent auf Form macht VisualStudio automatisch this.mycomponent1 = new test.MyComponent(this.components);.
Das Projekt ist z.B. schon gross und im Einsatzt. Aber dann braucht ein Kunde in der Komponete dass einige Methoden z.B. etwas anders berechnen. Darum würde ich eine neue Klasse ableiten, und im Kundenorden speichern:
public partial class MyComponentKunde1 : MyComponent
{
... hier werden betrefende Methoden geändert
}
Aber überal im Projekt wird nur MyComponent instanziert und ich bräuchte dass irgendwie automatisch wird MyComponet "uminstanziert" auf MyComponentKunde1, falls die Komponet vorhanden ist. Und möchte nicht bei jedem neuen Kunde das gesamte Projekt durchsuchen, wo MyComponent verwenden ist und überal neue Kundenabfrage hinzufügen.
Meine Idee wärre, das die Komponete MyComponet selbe nachschaut, ob es im Kundenordner eine abgeleite Klasse gibt, falls ja, dann die wird anstatt MyComponet verwendet, dass sich die Klasse selbe uminstanziert.
D.h. überal im Projekt bleibt ungeändert die Verwendung von MyComponet this.mycomponent1 = new test.MyComponent(this.components); mycomponent1.RechneEtwas();, aber die abgeleitete Klasse MyComponentKunde1 benutz wird, falls vorhanden.
Die Idee ist, dass die andere Programmier sich nicht kümmern mussen, ob es von der Klasse MyComponet eine Kundenspezifische Ableitung vorhanden ist, die sollen nur MyComponet verwenden wie vorher. Dann sind noch andere Programmier da, die machen Kundenspecifische Ableitungen von Klassen, aber die kümmern sich nich um verwendung von der Komponenten.
Hätte jemand eine Idee, wie kann man das Problem lösen ? Für jede Hilfe bin ich dankbar.
Entschuldigen Sie, bitte meine deutsche Sprache!
![Stirnrunzeln](https://entwickler-forum.de/core/images/smilies/frown.png)
Comment