首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上“Util”课是否引起人们的关注?

上“Util”课是否引起人们的关注?
EN

Software Engineering用户
提问于 2012-11-08 20:33:27
回答 4查看 11.9K关注 0票数 15

有时,我创建“Util”类,主要用于保存方法和价值观,而这些方法和价值观似乎并不真正属于其他地方。但每次我上这些课的时候,我都会想“呃-哦,我以后会后悔的……”,因为我在某个地方读到这很糟糕。

但另一方面,似乎有两个令人信服的案例(至少对我而言):

  1. 在包中的多个类中使用的实现秘密
  2. 提供有用的功能来增强类,而不混淆其接口。

我在走向毁灭的路上吗?你说什么!!我该重构一下吗?

EN

回答 4

Software Engineering用户

发布于 2012-11-08 21:00:37

现代面向对象设计承认,并非所有事物都是一个对象。有些东西是行为,或者公式,而有些东西没有状态。将这些东西建模为纯函数以获得设计的好处是很好的。

Java和C# (和其他)要求您创建一个util类并跳过这个循环来完成它。烦人,但不是世界末日;从设计的角度看也不算麻烦。

票数 26
EN

Software Engineering用户

发布于 2012-11-08 20:58:16

Util类没有内聚性,而且通常设计不好,因为类必须有一个改变的原因(单响应性原则)。

然而,我在Java中看到了"util“类,比如:MathCollectionsArrays

这些实际上是实用程序类,但它们的所有方法都与一个主题相关,一个有数学运算,一个有操作集合的方法,还有一个用于操纵数组。

不要在实用工具类中使用完全无关的方法。如果是这样的话,你很可能会把他们放在真正属于他们的地方。

如果必须有util类,那么尝试用主题来分隔它们,比如MathCollectionsArrays。至少,它显示了一些设计意图,即使它们只是名称空间。

例如,我总是避免使用实用工具类,而且从来没有创建过类的必要。

票数 8
EN

Software Engineering用户

发布于 2012-11-08 20:55:01

拥有util类是完全可以接受的,尽管我更喜欢术语ClassNameHelper。.NET BCL甚至在其中包含了助手类。需要记住的最重要的事情是彻底记录类的用途,以及每个单独的助手方法,并使其成为高质量的可维护代码。

不要沉迷于帮助者类。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/175176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档