Quindi volevo ereditare da sealed class
in csharp e sono stato masterizzato. Non c'è modo di annullarlo a meno che tu non abbia accesso alla fonte.
Poi mi ha fatto pensare "perché sealed
esiste anche?". 4 mesi fa. Non riuscivo a capirlo, nonostante leggessi molte cose a riguardo, come ad esempio:
- I desideri di Jon Skeet " classi sono stati sigillati per impostazione predefinita in .NET. "
- Preferisci la composizione all'ereditarietà?
- "Non devi sigillare tutte le classi (...)"
- Come prendi in giro una classe Sealed?
Da allora ho provato a digerire tutto ciò, ma è troppo per me. Alla fine, ieri ho provato di nuovo. Ho scansionato di nuovo tutti e altri ancora:
- Perché un classe essere qualcosa di diverso da "astratto" o "finale / sigillato"?
- In oltre 15 anni di programmazione, la prima volta che ho sentito parlare di SOLID , di una risposta da una domanda già collegata e ovviamente non l'ho letta tutta 4 mesi fa
Infine, dopo aver riflettuto a lungo, ho deciso di pesante modificare la domanda originale in base al nuovo titolo.
La vecchia domanda era troppo ampia e soggettiva. In pratica chiedevo:
- Nel vecchio titolo: un buon motivo per usare sigillato
- Nel corpo: come modificare correttamente una classe sigillata? Dimentica l'ereditarietà? Usa la composizione?
Ma ora, comprensione (che non ho ieri) che tutto sealed
fa sta impedendo l'ereditarietà , e possiamo e dovremmo effettivamente usare composizione sull'ereditarietà , mi sono reso conto che quello di cui avevo bisogno erano esempi pratici .
Credo che la mia domanda qui sia (e in effetti è sempre stata) esattamente ciò che Mr.Mindor mi ha suggerito in una chat : In che modo la progettazione dell'ereditari può comportare costi aggiuntivi?