我使用的UI框架并没有遵循严格的MVC设计。我创建了一个组件,并将适当的属性添加到" style"这个类的实例。一些伪代码:
Button bu = new Button();
bu.setCaption("Something");
bu.addClickListener(...);
bu.setAnotherProperty(1);
但是,我什么时候决定增加一个额外的课而不是整个setter?
喜欢(伪代码):
public class MyButton extends Button {
this.setCaption("Something");
this.addClickListener(...);
this.setAnotherProperty(1);
}
总是这样做是一种好习惯吗?一般来说这样做是不好的做法吗?或者是否有一个特殊情况,人们应该决定创建一个类而不是一个巨大的setter块?
答案 0 :(得分:3)
您的MyButton
并非真正(至少基于显示的代码)一种特殊类型的按钮。它只是Button
,其中某些参数以某种方式设置。基于此,我可能不会创建一个单独的类,而是根据不同的规范构建按钮的工厂方法。
如果你突然意识到你需要两种类型的特殊"这会带来额外的好处。按钮,您可以添加另一个工厂方法,而不是创建另一个类,它仍然基本上只是Button
有一些额外的化妆。
所以我没有Button b = new MyButton();
而是(实现样式免费)Button b = ButtonFactory.myButton();
。
答案 1 :(得分:0)
您是否多次使用自定义按钮?如果是这样,那么创建一个单独的类将是一个好习惯。如果没有,那么通常没有必要。
即使这个自定义按钮仅使用一次,我仍然建议单独使用一个类来保证"安全保存"。