2015-11-03 4 views
0

Я использую структуру пользовательского интерфейса, которая не соответствует строгой конструкции MVC. Я создаю компонент и добавляю присвоенные свойства к «стилю» этого экземпляра класса. Некоторый псевдо-код:Должен ли я использовать дополнительный класс или стиль для экземпляра?

Button bu = new Button(); 
bu.setCaption("Something"); 
bu.addClickListener(...); 
bu.setAnotherProperty(1); 

Однако, когда я решил сделать дополнительный класс вместо этого всего инкубационного блока?

Как (псевдо-код):

public class MyButton extends Button { 

this.setCaption("Something"); 
this.addClickListener(...); 
this.setAnotherProperty(1); 

} 

Это хорошая практика, чтобы сделать это, как это всегда? Неужели это плохая практика в целом? Или есть специальный случай, когда нужно решить создать класс вместо огромного блока setter?

ответ

3

Ваш MyButton на самом деле не является (по крайней мере, на основе указанного кода) специальным типом кнопки. Это всего лишь Button с некоторыми параметрами, установленными определенным образом. Исходя из этого, я бы, вероятно, не создал отдельный класс, а фабричные методы, которые строят кнопки в соответствии с различными спецификациями.

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

Итак, вместо Button b = new MyButton(); У меня было бы что-то вроде линий (стиль реализации бесплатный) Button b = ButtonFactory.myButton();.

+0

Мне очень нравится такой подход :) Спасибо! – OddDev

0

Вы используете свою пользовательскую кнопку более одного раза? Если это так, тогда было бы хорошей практикой создать отдельный класс. Если нет, тогда вообще это не нужно.

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

Смежные вопросы