Pregunta

Supongamos que tenemos clases Galería e Imagen. Puede haber muchas imágenes en una galería.

Galería debe tener algún método que devuelve el número de imágenes anidadas. Mis sugerencias:

int getImagesCount ();

int countImages ();

int imagesCount ();

I vio ejemplos de cada uno de estos 3 sugerencias en diferentes APIs (por supuesto con otra sustantivo o incluso sin ella, como size () método en el API Collections).

¿Qué prefiere y por qué? (Una de mis pensamientos contra countImages () es que este nombre puede hacer pensar del usuario que este método hace algunos cálculos complejos.)

¿Fue útil?

Solución

Mi sugerencia:

public interface Gallery {

    int getNumberOfImages();

    //...
}

Estoy de acuerdo, que countXX() conduce a la impresión, que llamar a este método provoca algún tipo de cálculo. Así que no lo uso aquí también.

Otros consejos

Yo descartaría countImages () también, por la misma razón.

Aparte de eso, si hay una convención más o menos consistente de nombres en el código base Gallery pertenece, yo recomendaría adherirse a ella. En ausencia de una convención proyecto claro, yo personalmente inclinarse hacia size().

Si usted está pensando en tener un método que devuelve el tamaño, y otro que devuelve el elemento enésimo, mi recomendación en general: No lo haga! Usa el poder de la API de colecciones : crear un método que devuelve un List<Image>. De esta manera el usuario de la API se puede hacer más fácilmente cosas como la iteración sobre las imágenes (con el reforzado de bucle en lugar de tener que hacer malabares con los índices), ordenándolos, la combinación de ellos en otras colecciones, ...

Es muy fácil de implementar:

  • Si las imágenes están internamente ya se representan como una lista, sólo puede volver que (opcionalmente envuelto con Collections.unmodifiableList).
  • E incluso si no guardarlas como una lista, exponiéndolos como List<Image> es tan fácil como escribir una pequeña subclase de AbstractList con sólo anulando size() y get(int), los dos métodos que se iban a poner en práctica todos modos.

El problema con size() es que no es necesariamente claro si usted está volviendo el número de elementos (imágenes en este caso) o el tamaño en bytes / kilobytes / megabytes de la colección. Por la misma razón, tiendo a preferir getImageDimensions() a getImageSize(). En su caso, al igual que countImages() porque es claro y conciso, pero no sigue las convenciones de nomenclatura si, por ejemplo, existen métodos como getImage(int). Por lo tanto, voy a tener que ir con int getImagesCount() o mejor, int getNumberOfImages() o int getNumImages()

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top