estoy aprendiendo acerca de los patrones de diseño y en los ejemplos de código que he visto una convención donde la clase abstracta declara un método, por ejemplo:abstracta firma del método, la herencia y "Do" convención de nomenclatura
public abstract class ServiceBase {
...
public virtual object GetSomething();
y luego
protected abstract object DoGetSomething();
Mi pregunta es acerca de por qué existen estos dos métodos, ya que parecen servir para el mismo propósito. ¿Esto es así para que la clase base de la lógica del método GetSomething() no pueda ser anulada por las clases heredadas? Pero, de nuevo, el método está marcado como virtual, por lo que puede ser anulado de todos modos. ¿Cuál es la utilidad aquí al requerir que los implementadores de clase derivados implementen el método abstracto cuando el método virtual se puede llamar de todos modos?
¿Se supone que GetSomething es virtual? – JaredPar
Sí, definitivamente es virtual. –