Java: La implementación de un super clase por defecto que establecerá los miembros de todas las subclases

demonoga:

Ejemplo:

Quiero hacer la mayor parte de los componentes tienen un determinado color de fondo y color de primer plano determinado, y quiero cambiarlo si por defecto en color parece fuera. métodos primarios para lograr esto son setBackgroundColor () y setForegroundColor ().

La mayor respuesta plausible para mí es:

public class DefaultComponent {
  private static final BACKGROUND_COLOR = Color.GRAY;
  private static final FOREGROUND_COLOR = Color.WHITE;
  public static void setComponent(Component comp) {
    comp.setBackground(backgroundColor);
    comp.setForeground(foregroundColor);
  }
}

Es este el enfoque correcto? También hay un nombre especial para tal una construcción, como por ejemplo en la fábrica?

niver:

Sí, su diseño sugiere que usted necesita una abstracción. El comportamiento común de ciertos métodos se puede encerrar en la clase abstracta, y los métodos específicos se llevará a cabo por las clases concretas.

public abstract class GenericComponent {
  private static final BACKGROUND_COLOR = Color.GRAY;
  private static final FOREGROUND_COLOR = Color.WHITE;
  public static void setComponent(Component comp) {
    comp.setBackgroundColor(backgroundColor);
    comp.setForegroundColor(foregroundColor);
  }

  //here provide a list of abstract methods that each extension class will implement.
}

Como se trata de una clase abstracta, no se pueden crear instancias. Usted tendrá que tener por lo menos una extensión concreta, y crear instancias de esa.

Supongo que te gusta

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