java - 我应该使用额外的类或设计实例的样式吗?

标签 java class oop

我使用的 UI 框架不遵循严格的 MVC 设计。我创建一个组件并添加适当的属性来“设置”该类实例的“样式”。一些伪代码:

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

但是,我什么时候决定创建一个额外的类而不是整个 setter block ?

喜欢(伪代码):

public class MyButton extends Button {

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

}

总是这样做是一个好习惯吗?一般来说这样做是一种不好的做法吗?或者是否存在一种特殊情况,人们应该决定创建一个类而不是一个巨大的 setter block ?

最佳答案

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

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

因此,我不会使用 Button b = new MyButton(); ,而是使用类似(自由实现样式)的 Button b = ButtonFactory.myButton(); >.

关于java - 我应该使用额外的类或设计实例的样式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33493000/

相关文章:

java - 在 BoxLayout 中居中 JButton,JTextField 填充

java - 如何在Java中进行并行编程?

java - 使用 IntelliJ Idea 进行远程调试

database - 当您将数据库记录和数据集抽象为对象时,您的对象模型是什么样的?

php - 使用 PHP 维护不同页面的对象状态

java - Jsoup 在遍历时删除节点和子节点

c++ - 无法从其他类获取单例类的实例

java - 访问类内ArrayList的变量

javascript - 单击一个导航项,添加一个类,从其他导航项中删除类 - vanilla JS

php - PHP 中的动态多态性