diseño de programación orientada a objetos de pequeñas clases de ayuda

Chris01:

Digamos que tengo una clase C que está haciendo un trabajo.

Para que necesito un poco muy simple clase de ayuda H (por ejemplo, representación de un par o un 3-tupla). H sólo es necesario en C.

Yo pondría H interior de C.

class C
{
   void foo ()
   {
     // ... use H to do the job more easy ...
   }

   class H
   {
      // very simple and contained stuff
   }
}

H está poniendo en el interior de C es una buena idea? Puedo hacer que tenga que contenía y en el lugar en el que creo que debería ser y no en otra. Pero no estoy seguro de que es un buen diseño.

GhostCat saludos Monica C.:

Más de una adición:

Primero: si los objetos H se supone que existe sin una instancia C poseer, a continuación, H debe ser static. Incluso puede que desee para que sea privado.

A continuación, tenga en cuenta: usted tiene una clase interna aquí, así que el nombre completo de H es en realidad algo así como whatever.package.com.CH . En otras palabras: en realidad se atan a H C.

¿Qué pasa si usted decide en algún momento que H tiene suficientes otros aspectos que hacen que valga la pena de ser "su propio" cosa? Entonces es posible que tenga que tocar algo más de código, para convertir su whatever.package.com.CH en whatever.package.com.H .

De este modo se podría considerar para hacer una clase H de nivel superior, pero al no hacerlo público. Por lo que mantener en C.java, pero no como clase interna!

(Pero, por supuesto, que realmente depende de "estilo", creo que el estándar de codificación de Java Google te dice tener sólo una clase de nivel superior por .java archivo)

Las últimas palabras: si hay una manera de convertir su clase H en algo que podría ser utilizado en otros lugares, entonces me gustaría ir hacia adelante y de inmediato lo convierten en un público de clase de su propio. Si reutilización parece razonable, escribir el código para que pueda ser fácilmente re-utilizado! Y una tupla de 3 valores no suena como que es muy específica para nada, por lo que suena como un candidato para su reutilización.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=177454&siteId=1
Recomendado
Clasificación