son recomendadas prácticas programación programacion practicas para nomenclatura las finales cuáles consejos codificacion buenas c++

c++ - recomendadas - ¿Crear una clase vacía es meramente para distinguirla de otra buena práctica de clase?



cuáles son las prácticas recomendadas para la nomenclatura de las variables finales (7)

Tengo una clase de CardStack . Tengo varias clases que heredan de CardStack por ejemplo, Cascade , Deck , Foundation , etc.

Foundation no necesita agregar ninguna funcionalidad a CardStack , pero para fines de visualización, mi aplicación necesita saber cuáles de los CardStack son en realidad Foundation .

Por cierto, no tengo esa función CardStack.Display() (Estoy usando un patrón de modelo-vista-controlador donde el objeto de View simplemente consulta al Model para averiguar con qué tipo de objetos está tratando).

Me parece bien, pero ¿hay alguna razón para no hacer esto?

class Foundation : public CardStack { }; class Model { Cascade cascade[10]; Foundation foundations[10]; ... };


Es una buena práctica, ya que es semánticamente más clara con casi, casi sin costo asociado y permite modificaciones, cuando surge la necesidad de que las subclases se comporten de manera diferente.


Lo hago todo el tiempo por listas.

public class MyObjects : List<MyObject> { }


No hay nada malo con esto.

Hazlo todo el tiempo.

En el futuro, puede haber una diferencia en la estructura, el comportamiento o la implementación. Por ahora, comparten muchas características comunes.


No hay nada malo en ello, lo hago a menudo. Me gusta más que las interfaces de "marcador" vacías (en Java). Como han mencionado otros, probablemente debería comentar sobre el hecho de que se supone que la implementación está vacía (o tal vez "reservada para uso futuro"), pero de lo contrario, en mi humilde opinión está bien.


No veo ningún problema técnico con eso, por lo que quizás esté haciendo esto por razones semánticas. En ese caso, asegúrese de documentar el motivo por el que está MUY CLARAMENTE para que los programadores de mantenimiento no intenten cambiar las cosas más adelante.



Sí, esto es válido y útil. Una clase vacía puede actuar como marcador de posición para una funcionalidad futura (como ejemplo). Por supuesto, un poco de documentación está en orden si la clase en cuestión está "conectada" al programa de alguna manera ;-)

En su caso anterior, el código C ++ generado no se cargará ... pero aumenta la legibilidad de su código.