Also wollte ich von a sealed class
in csharp erben und wurde verbrannt. Es gibt nur eine Möglichkeit, die Versiegelung aufzuheben, wenn Sie Zugriff auf die Quelle haben.
Dann dachte ich: "Warum sealed
gibt es überhaupt?" vor 4 Monaten. Ich konnte es nicht herausfinden, obwohl ich viele Dinge darüber gelesen habe, wie zum Beispiel:
- Jon Skeets Wünsche " Klassen wurden standardmäßig in .NET versiegelt. "
- Bevorzugen Sie die Komposition gegenüber der Vererbung?
- "Sie sollten nicht alle Klassen versiegeln (...)"
- Wie macht man sich über eine Sealed-Klasse lustig?
Ich habe seitdem versucht, das alles zu verdauen, aber es ist einfach zu viel für mich. Irgendwann gestern habe ich es nochmal versucht. Ich habe sie alle noch einmal gescannt und noch ein paar mehr:
- Warum sollte eine Klasse nicht "abstrakt" oder "endgültig / versiegelt" sein?
- In über 15 Jahren Programmierung habe ich zum ersten Mal von SOLID gehört, als Antwort auf eine Frage, die bereits verlinkt ist, und ich habe es offensichtlich nicht alle vor 4 Monaten gelesen
Schließlich habe ich mich nach langem Nachdenken entschlossen , die ursprüngliche Frage auf der Grundlage des neuen Titels stark zu bearbeiten.
Die alte Frage war zu weit gefasst und subjektiv. Grundsätzlich wurde gefragt:
- Im alten Titel: Ein guter Grund, versiegelt zu verwenden
- Im Körper: Wie kann man eine versiegelte Klasse richtig modifizieren? Erbschaft vergessen? Komposition verwenden?
Aber jetzt, zu verstehen (was ich nicht gestern) , dass alles sealed
tut , ist Vererbung zu verhindern , und wir können und in der Tat verwenden sollten Komposition der Vererbung , wurde mir klar , was ich brauchte , war praktische Beispiele.
Ich denke, meine Frage hier ist genau das, was Mr.Mindor mir in einem Chat vorgeschlagen hat (und das war es auch schon immer) : Wie kann das Entwerfen für die Vererbung zusätzliche Kosten verursachen?