Является ли это плохим объектно-ориентированным программированием? Передача этого через методы

Хорошо, предположим, что у меня есть класс, 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?

6
задан user997112 10 July 2012 в 00:44
поделиться