Оператор Spark View Engine If относился к атрибутам

Существует обычно ничто, чтобы быть полученным путем развода с объектной инициализацией от конструкции. RAII корректен, успешный вызов конструктору должен или привести к полностью инициализированному живому объекту, или это должно перестать работать, и ВЕСЬ , отказы в любой точке в любом пути выполнения кода должны всегда выдавать исключение. Вы ничего не получаете при помощи отдельного init () метод кроме дополнительной сложности на некотором уровне. Контракт ctor должен быть, или это возвращает функциональный доступный объект, или это моется после себя и бросков.

Рассматривают, если Вы реализуете отдельный init метод, все еще необходимо назвать его. Это будет все еще иметь потенциал для выдавания исключения, они все еще должны быть обработаны, и их фактически всегда нужно сразу назвать после конструктора так или иначе, кроме теперь у Вас есть 4 возможных объектных состояния вместо 2 (IE, созданный, инициализированный, неинициализированный, и отказавший по сравнению только с допустимым и не существующим).

В любом случае я натыкался за 25 лет случаев разработки OO, где кажется, что отдельный init метод 'решил бы некоторую проблему', недостатки дизайна. Если Вам не нужен объект ТЕПЕРЬ тогда, Вы не должны создавать его теперь, и если Вам действительно нужен он теперь тогда, Вам нужен в инициализированный. KISS должен всегда быть сопровождаемым принципом, наряду с простым понятием, что поведение, состояние и API любого интерфейса должны отразить то, ЧТО объект делает, не, КАК это делает это, клиентский код даже не должен знать, что объект имеет любой вид внутреннего состояния, которое требует инициализации, таким образом init после того, как шаблон нарушает этот принцип.

5
задан detroitpro 4 December 2009 в 15:51
поделиться

1 ответ

<select id="State" name="State" if="Model.StateList.Any()" >
        <option value="">Select One</option>
        <option each="var item in Model.StateList" value="${item.Value}" selected="true?{Model.State == item.Value}" >${item.Key}</option>
</select>
8
ответ дан 14 December 2019 в 04:40
поделиться
Другие вопросы по тегам:

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