103
Garage garage = new Garage (new Crossover());
Garage anotherGarage = new Garage (new
Trailer());
}
}
Увеличение гибкости за счет использования интерфейсов.
Преимущества, которые мы получаем:
-
код работает с объектами по интерфейсной ссылке;
-
этот код может быть использован для работы с
любыми объектами,
реализующими этот интерфейс;
-
более гибкий механизм (по сравнению с наследованием), но
требует
реализации интерфейса.
interface Wheeled{}
class Crossover implements Wheeled{}
class Hatchback implements Wheeled{}
class Trailer implements Wheeled{}
class PotatoesBag {};
class Garage {
private Object keepingThing;
public Garage(Object keepingThing){
this.keepingThing = keepingThing;
}
public Object getKeepingThing(){
return keepingThing;
}
}
class Man {
public static void main(String[] args) {
Garage garage = new Garage (new PotatoesBag());
Object o = garage.getKeepingThing();
PotatoesBag bag;
if (o instanceof PotatoesBag) bag = (PotatoesBag)
o;
}
}
Достарыңызбен бөлісу: