Сколько кода нужно вставить конструктора?

попробуйте установить изображение для зажима вместо повторения.

это даст результат черных рамок, но у вас не будет этой странной текстуры

enter image description here

20
задан Luiggi Mendoza 14 July 2014 в 15:20
поделиться

8 ответов

Если Вы идете ТЕЛО принципы, каждый класс должен иметь одну причину изменить (т.е. сделать одну вещь). Поэтому конструктор обычно не читал бы файл, но у Вас будет отдельный класс, который создает объекты из файла.

12
ответ дан 30 November 2019 в 01:08
поделиться

Так мало, как необходим для завершения инициализации объекта.

, Если можно говорить о части (приблизительно 5 строк моя инструкция) конструктора как блок логики или определенного процесса, вероятно, лучше разделить его на отдельный метод для ясности и организационных целей.

, Но каждому его собственное.

2
ответ дан 30 November 2019 в 01:08
поделиться

Смотрите на это ТАК вопрос . Даже при том, что другой - для C++, понятия все еще очень похожи.

4
ответ дан 30 November 2019 в 01:08
поделиться

Как сказанный Knuth, "Преждевременная оптимизация является корнем всего зла".

, Насколько необходимо вставить consructor? Все Вы должны. Это - "нетерпеливый" подход. Когда - и только когда - производительность становится проблемой, делают Вы рассматриваете оптимизацию ее (к "ленивым" или "очень обеспокоенным" подходам).

1
ответ дан 30 November 2019 в 01:08
поделиться

Конструкторы должны быть просто достаточно длинными, но больше =)

, Если Вы определяете несколько перегруженных конструкторов, не копируйте код; вместо этого, консолидируйте функциональность в одного из них для улучшенной ясности и простоты обслуживания.

1
ответ дан 30 November 2019 в 01:08
поделиться

Конструкторы должны создать самый минимальный, универсальный экземпляр Вашего объекта. Как универсальный? Выберите тестовые сценарии, которые каждый экземпляр или объект, который наследовался классу, должны передать, чтобы быть допустимыми - даже если "допустимый" только средство перестало работать корректно (программно исключительная ситуация).

Википедия имеет хорошее описание:

http://en.wikipedia.org/wiki/Constructor_ (computer_science)

Доступный объект А является целью конструктора, допустимого не обязательно полезный - который может быть сделан в методе инициализации.

1
ответ дан 30 November 2019 в 01:08
поделиться

Моя обычная практика - то, что, если весь конструктор должен сделать, установлен некоторые поля на объекте, это может быть произвольно длинно. Если это становится слишком длинным, это означает, что дизайн класса повреждается так или иначе, или данные должны быть упакованы в некоторых более сложных структурах.

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

0
ответ дан 30 November 2019 в 01:08
поделиться

Ваш класс, возможно, должен быть инициализирован к определенному состоянию, прежде чем любая полезная работа сможет быть сделана с ним.

Рассматривают это.

public class CustomerRecord
{
    private Date dateOfBirth;

    public CustomerRecord()
    {
        dateOfBirth = new Date();
    }

    public int getYearOfBirth()
    {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(dateOfBirth);
        return calendar.get(Calendar.YEAR);
    }   
}

Теперь, если Вы не инициализируете dateOfBirth участника, varialble, любой последующий вызов getYearOfBirth (), приведет к NullPointerException.

Так инициализация абсолютного минимума, которая может включить

  1. Присвоение значений.
  2. функции помощника Вызова.

, чтобы гарантировать, что класс ведет себя правильно, когда это - участники, вызываются позже, все, что должно быть сделано.

0
ответ дан 30 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: