Сколько конструкторов мне понадобится в приложении Java? - PullRequest
0 голосов
/ 19 мая 2018

Итак, если у меня есть public class с именем 'X', и у него есть 5 переменных.Нужно ли кодировать конструктор для каждой комбинации переменных?Мое учение не проясняет это для меня, но я думаю, что в этом нет необходимости, поскольку приложение может быть слишком тяжелым (или нет?), Но в противном случае это может повысить гибкость приложения.

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 19 мая 2018

Вы не можете предоставить публичный конструктор, если хотите.

С Java вы можете использовать несколько конструкторов для достижения правильного поведения инициализации объекта.Количество из них является результатом возможных реальных сценариев.Если, например, последние два параметра являются необязательными или могут быть оценены из предыдущих параметров, предоставьте такой конструктор.

Вы также можете использовать некоторые приемы с этим () следующим образом:

public class Test {
    private int a;
    private int b;
    private int c;
    private int d;

    public Test(int a, int b, int c, int d) {
        this.a = a;
        this.b = b;
        this.c = c;
        this.d = d;
    }

    public Test(int a, int b) {
        this.a = a;
        this.b = b;
        this.c = 0;
        this.d = 0;

        // or: this(a, b, 0, 0);
    }

    public Test() {
        this(5, 1, 0, 0);
    }
}
0 голосов
/ 19 мая 2018

При определении конструктора я спрашиваю себя, какие минимальные порции информации мне нужны для того, чтобы иметь рабочий экземпляр класса.Например, класс java.io.File имеет 4 конструктора, и все они берут путь к файлу.Пустого конструктора не существует, поскольку не имеет смысла иметь файл без пути или расположения файловой системы.

Теперь для класса Bike вы можете определить пустой конструктор, который инициализирует экземпляр с помощьюстандартные атрибуты велосипеда: 2 колеса и т. д. А затем есть сеттеры для настройки при необходимости.

0 голосов
/ 19 мая 2018

Это зависит.

Пять переменных экземпляра не так много, как я видел, поэтому конструктор, принимающий параметры 5, не будет худшей вещью в мире.Как вы знаете, Java позволяет вам иметь несколько конструкторов в одном классе, так что вы можете существенно перегрузить конструктор, который принимает параметры 5, тем, который предоставляет значения по умолчанию для некоторых параметров, например:

public Test(int a, int b, String c, long d, float e) {
    this.a = a;
    this.b = b;
    this.c = c;
    this.d = d;
    this.e = e;
}

public Test(int a, int b) {
    this(a, b, "Test", 0L, 3.14F);
}

Вы также можете заглянуть в Pattern Builder , если хотите инициализировать некоторые переменных экземпляра, а не все из них при создании экземпляра объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...