¿Cuál es el enfoque recomendado para nombrar clases base? ¿Es prefijar el nombre del tipo con " Base " o " Resumen " o simplemente lo añadiríamos como "Base"?
Considera lo siguiente:
escribir: ViewModel
por ejemplo MainViewModel , ReportViewModel
clase base: BaseViewModel
o ViewModelBase
oAbstractViewModel
Considere también:
tipo: Product
por ejemplo , VirtualProduct , ExpiringProduct
clase base: BaseProduct
o ProductBase
oAbstractProduct
¿Cuál crees que es más estándar?
class Entity : EntityBase
{
}
o
class Entity : BaseEntity
{
}
c#
naming-conventions
base-class
Soni Ali
fuente
fuente
Respuestas:
Hay ejemplos en el marco con el sufijo base, por ejemplo
System.Configuration.Provider.ProviderBase
,System.Web.SessionState.SessionStateStoreProviderBase
.Pero de ninguna manera todas las clases base abstractas en el Marco siguen esta convención (por ejemplo
System.Data.Common.DbParameter
,System.Data.Common.DbCommand
).Personalmente, evitaría usar el sufijo a menos que quisiera enfatizar el hecho de que es una clase abstracta y siento que, de lo contrario, los usuarios de la clase podrían esperar que el nombre indique una implementación concreta.
fuente
Avoid
nombrar clases base con unBase
sufijo si la clase está destinada a utilizarse en API públicas". Pautas de diseño del marco, página 174Ninguna de las anteriores. Considere qué propósito proporciona su clase base; nombrarlo así. Por ejemplo, la clase base de Automóvil y Bicicleta podría ser Vehículo.
Si está creando clases base solo para tener una clase base de una clase, y sin otro propósito o razón más que eso, probablemente esté haciendo algo mal.
fuente
Si habla de clases base virtuales, el estándar de Microsoft es ClassnameBase (como CollectionBase).
fuente
Creo que es una cuestión de elección. Yo diría que si está creando muchas clases base, entonces tal vez sea mejor usar BaseClassname siempre porque de esa manera SIEMPRE puede averiguar qué clases base puede comenzar a usar simplemente escribiendo Base y obteniendo el resto de la ayuda de Intellisense. ¿Qué pasa si tiene 20 clases Base y agrega Base como sufijo y olvida cuál era el nombre de la clase base? ¿Desea crear un diagrama de clases primero desde VS y averiguar qué clases base están disponibles? Está bien llamarlos ClassBase cuando es solo una o dos clases.
Lo mismo ocurre con la decisión entre GetItems y la función ItemsGet. Yo diría que al menos por el bien de la legibilidad, opte por GetItems. Siga las convenciones :)
fuente
GetItems
no funciona: “Get” es solo un verbo y, por lo tanto, solo tiene sentido gramatical en inglés como prefijo, mientras que “Base” funciona como adjetivo (prefijo) o como sustantivo (sufijo).abstract
.Usamos BaseEntity, pero creo que es su preferencia. Frecuentemente veo al otro.
Simplemente sea coherente con su contexto, ya sea su proyecto, espacio de nombres o, si es posible, su equipo. Diferentes convenciones son peores que una mala convención en mi humilde opinión.
fuente
Personalmente, recomendaría no agregar la palabra base en absoluto. Nunca se sabe cuándo tendrá que cambiar el código y ya no será el objeto base. Dicho esto, hemos hecho esto en el pasado, anteponemos la palabra Base al frente. Parece fluir mejor.
fuente
BaseEntity se parece mucho al caso camel: strName, bseEntity. Yo elegiría EntityBase ya que define el tema primero, lo que te ayudará a identificar su función más rápido.
fuente
Piense siempre en la alfabetización cuando nombre cosas. Realmente no me gusta mirar un servidor SQL y cada procedimiento almacenado se llama usp [algo]. En la misma línea, no use en exceso Get y Set como nombres principales para una función. En lugar de GetItems o PlaceOrder, piense en nombrarlos como ItemsGet o OrderPlace.
Entonces, en general, ClassnameBase / EntityBase sería una mejor opción.
fuente