Entonces quería heredar de un sealed class
en csharp y me quemé. Simplemente no hay forma de abrirlo a menos que tenga acceso a la fuente.
Entonces me hizo pensar "¿por qué sealed
existe?". hace 4 meses. No pude resolverlo, a pesar de leer muchas cosas al respecto, como:
- Los deseos de Jon Skeet "las clases estaban selladas por defecto en .NET " .
- ¿Prefieres la composición a la herencia?
- "No debes sellar todas las clases (...)"
- ¿Cómo te burlas de una clase sellada?
He intentado digerir todo eso desde entonces, pero es demasiado para mí. Finalmente, ayer lo intenté de nuevo. Los he escaneado nuevamente, y algunos más:
- ¿Por qué una clase no debe ser "abstracta" o "final / sellada"?
- En más de 15 años de programación, la primera vez que escuché sobre SOLID , a partir de una respuesta de una pregunta ya vinculada y obviamente no lo leí todo hace 4 meses
Finalmente, después de reflexionar mucho, decidí editar en gran medida la pregunta original basada en el nuevo título.
La vieja pregunta era demasiado amplia y subjetiva. Básicamente estaba preguntando:
- En el título anterior: una buena razón para usar sellado
- En el cuerpo: ¿Cómo modificar adecuadamente una clase sellada? Olvídate de la herencia? Usar composición?
Pero ahora, entendiendo (lo que no hice ayer) que todo losealed
que hace es prevenir la herencia , y que podemos y debemos usar la composición sobre la herencia , me di cuenta de que lo que necesitaba eran ejemplos prácticos .
Supongo que mi pregunta aquí es (y de hecho siempre ha sido) exactamente lo que el Sr.Mindor me sugirió en un chat : ¿Cómo puede el diseño de la herencia causar un costo adicional?