Различные классы, реализующие один и тот же интерфейс, входят в конструктор - PullRequest
1 голос
/ 12 апреля 2019

Это вопрос об абстракции.

Я хочу использовать два совершенно разных графических интерфейса для моего приложения.Они совершенно разные, но реализуют один и тот же интерфейс.

Мой вопрос: как будет выглядеть конструктор?Какой тип объекта идет в подписи?

Они не расширяют общего родителя, поэтому я не могу использовать полиморфизм.

объект контроллера хочет быть введен с объектом, который реализует интерфейс Displayable.

interface Displayable {
    void display();
}

class Display1 implements Displayable {
    public void display() {
        //Shows something Fancy on the screen
    }
}

class Display2 implements Displayable {
    public void display() {
        //write something to console
    }
}

class Main {
    public static void main(String[] args) {
//        Controller controller = new Controller(new Display1());
        Controller controller = new Controller(new Display2());
        controller.display();
    }
}

class Controller {
    ????? display;

    public Controller(?????? display) {
        this.display = display;
    }

    public void display() {
        display.display();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...