我应该使用额外的类还是样式实例?

时间:2015-11-03 06:49:35

标签: java class oop

我使用的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块?

2 个答案:

答案 0 :(得分:3)

您的MyButton并非真正(至少基于显示的代码)一种特殊类型的按钮。它只是Button,其中某些参数以某种方式设置。基于此,我可能不会创建一个单独的类,而是根据不同的规范构建按钮的工厂方法。

如果你突然意识到你需要两种类型的特殊"这会带来额外的好处。按钮,您可以添加另一个工厂方法,而不是创建另一个类,它仍然基本上只是Button有一些额外的化妆。

所以我没有Button b = new MyButton();而是(实现样式免费)Button b = ButtonFactory.myButton();

答案 1 :(得分:0)

您是否多次使用自定义按钮?如果是这样,那么创建一个单独的类将是一个好习惯。如果没有,那么通常没有必要。

即使这个自定义按钮仅使用一次,我仍然建议单独使用一个类来保证"安全保存"。