2012-08-30 10 views
64

¿Cómo se determina cómo llamar a una clase XHelper o XUtils?¿Cuáles son las diferencias entre las clases de Ayuda y Utilidad?

Para mi mente:

Clase auxiliar, es una clase que puede ser instantiate y hacer algo de trabajo de negocios

Utilidades de clase, es una clase estática que realizan operaciones pequeñas y repetitivas en una tipo de instancia (ejemplo de las clases util ArrayUtils o IOUtils de Apache)

+3

"Trabajo de negocios" es la distinción clave aquí. Encuentro una convención útil usar 'Utils' para una clase estática que podría usarse en cualquier lugar de la organización o en otra organización. Una clase 'Helper' tiene un código común que puede reutilizarse dentro de un proyecto y tiene dependencias dentro del proyecto. Por supuesto, no existe una regla generalmente aceptada, pero me parece útil. –

Respuesta

57

Hay muchos estilos de nombres para usar. Sugeriría Utils simplemente porque es más común.

Se entiende que una clase de utilidad solo tiene métodos estáticos y no tiene estado. No crearías una instancia de dicha clase.

Un Helper puede ser una clase de utilidad o puede ser con estado o requerir que se cree una instancia. Yo evitaría esto si es posible.

Si puede hacer que el nombre sea más específico. p.ej. si se ha métodos de ordenación, que sea XSorter

Para las matrices se pueden encontrar clases de ayuda como

Array 
Arrays 
ArrayUtil 
ArrayUtils 
ArrayHelper 

BTW una breve parte de una clase de utilidad es una enumeración sin instancias

enum XUtils {; 
    static methods here 
} 

If necesita implementar una interfaz, yo usaría un Singleton sin estado.

enum XHelper implements RequiredInterface { 
    INSTANCE; 
    // no instance fields. 
} 
+0

Esto en esta publicación http://stackoverflow.com/a/2135797/787698, que Xutils es una clase estática sin dependencias. ¿Qué piensas sobre eso? – jakcam

+0

@jakcam Punto de interés.Un ayudante podría ser con estado y requerir una instancia. Usaría una clase de utilidad sin estado y sin instancia si es posible. –

+0

¿Qué entiendes por Xutils es una clase estática con ** sin dependencias **? – jakcam

7

En general? Es completamente arbitrario. No hay reglas para esto

1

No hay una respuesta definitiva para esto. Calcule un esquema de nombres y quédese con él. Nombrar sus paquetes y clases es una parte importante de la arquitectura del software, y nadie puede quitarle esa decisión.

Personalmente, me gusta más el XHelper, pero veo XUtils con más frecuencia en el código externo.

También me gusta el esquema de nombres "plural" encontrará tanto en el JDK y Guava:

si una clase aborda Collection objetos, se llama Collections

Matriz> Arrays (JDK)
lista> Listas (guayaba)
Mapa> Mapas (guayaba)

etc.

Cuestiones relacionadas