Considere la siguiente analogía: Si tenemos una clase: "Coche" podemos esperar que tenga una instancia de "Motor" en ella. Como en: "El automóvil tiene un motor". De manera similar, en la clase "Engine" esperaríamos una instancia de "Starting System" o "Cooling System", cada uno con sus subcomponentes apropiados.¿Cuál es la regla de oro para exponer métodos de clase encapsulada?
Por la naturaleza de la encapsulación, ¿no es cierto que el automóvil "HAS-A" tiene "manguera del radiador" y el motor?
Por lo tanto, es OO apropiado para hacer algo como esto:
public class Car {
private Engine _engine;
public Engine getEngine() {
return _engine;
}
// is it ok to use 'convenience' methods of inner classes?
// are the following 2 methods "wrong" from an OO point of view?
public RadiatorHose getRadiatorHose() {
return getCoolingSystem().getRadiatorHose();
}
public CoolingSystem getCoolingSystem() {
return _engine.getCoolingSystem();
}
}
public class Engine {
private CoolingSystem _coolingSystem;
public CoolingSystem getCoolingSystem() {
return _coolingSystem;
}
}
public class CoolingSystem {
private RadiatorHose _radiatorHose;
public RadiatorHose getRadiatorHose() {
return _radiatorHose;
}
}
public class RadiatorHose {//...
}
acabo de terminar el PDF y estaba casi terminado con el artículo ya - pero esto podría ser útil para otra persona. +1 – javamonkey79