design-patterns - 充满静态方法的类的设计注意事项

标签 design-patterns static

作为 Swing 开发人员多年的 Swing 开发人员,我已经确定了很多在布局组件时使用的模式。例如,我经常创建与 JLabel 关联的组件。我通常写:

JPanel panel = new JPanel(new BorderLayout());
panel.add(label, BorderLayout.NORTH);
panel.add(list, BorderLayout.CENTER);

我经常这样做,所以我决定创建一个包含我常用布局习惯用法的类。那么我可以简单地说:

JPanel panel = LayoutPatterns.createNorthLabeledPanel(label, list);

...这大大减轻了我的打字负担。

所以,现在我有一个包含大约 20 个静态方法的类。该类没有状态 - 所有上下文都通过方法参数传入。

除了 Java 的 Math 类,我还没有看到任何完全由静态方法组成且没有状态的类。

一方面,这感觉不对。另一方面,我看不出有什么不妥。

这是一个可以使用的模式,还是表明有代码味道的东西?如果此模式应用于不同的域,我是否应该关注静态类的多线程使用?如果您曾经在生产质量代码中看到过这种情况,您会犹豫吗?

最佳答案

我认为这里唯一的问题是一种语言迫使你发明一个类,其中 -gasp- 全局函数是完全合适的。 :-)

关于design-patterns - 充满静态方法的类的设计注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/591546/

相关文章:

java - 不使用单例模式时会出现什么问题

c - 变量类型的初始化和更新

c# - 为什么以及如何在 C# 中使用静态只读修饰符

javascript - Django 中的静态 html 页面

.net - 存储和评估规则表达式的数据库设计

javascript - nodeJS 设计模式打破 async.waterfall 或 promise.then.then

javascript - Redux - 复杂图形的建模状态并触发多个更新和副作用以响应单个操作

c# - 创建一个集合类型,它曾经是 List<T>,在其他用途​​中是 Stack<t>

.net - 如何将 GetMethod 用于静态扩展方法

java - Java中调用静态目录复制方法