Хорошо, предположим, что у меня есть класс, X и X — это что-то, что имеет совокупную связь с другими объектами. Давайте представим, что X — это футбольный стадион.
X полон зрителей класса. Однако поведение каждого зрителя для того или иного действия отличается. Вместо операторов IF я хочу, чтобы другое поведение было внутри класса наблюдателя, чтобы я мог использовать динамическую привязку.
Однако проблема в том, что поведение зрителя влияет на класс «футбольный стадион». Итак, я подумал о том, чтобы передать «это» из класса футбольного стадиона через метод в класс Spectator, чтобы класс зрителя мог что-то сделать с классом Soccer Stadium?
public class SoccerStadium{
SpecatorInterface s = new Spectator();
public void SpectatorBehaviour(){
s.doSomething(this);
}
public void doSomethingthingBySpecator(){
}
}
public class Spectator implements SpecatorInterface{
public void doSomething(SoccerStadium s){
s.doSomethingthingBySpecator();
}
}
Я хочу сделать это только для того, чтобы использовать динамическую привязку и изменить поведение в Specator.doSomething()
, чтобы иметь множество различных типов SpectatorSuperClass в качестве атрибута, передаваемого в SoccerStadium, и иметь другое поведение.
РЕДАКТИРОВАТЬ :Что, если я передам ссылку на стадион в Specator через конструктор Spectator вместо передачи this
?