【问题标题】:Choosing informative class names选择信息丰富的类名
【发布时间】:2011-10-26 02:43:29
【问题描述】:

我很难想出信息丰富且有用的类名。一类我有这个问题,向网站/服务器发出请求。我认为只适合将这个类命名为ServerRequest,它位于ServerServices 的包中。这个包还包含ServerDataServerImage 类。 ServerData 解析来自ServerRequest 的响应并创建对象。 ServerImage 将使用ServerRequest 将远程图像复制到本地计算机。

我不觉得给每个类名都加上前缀是个好习惯。同时,我不想简单地将这些类命名为RequestDataImage。没有前缀,名称就失去了意义,更不用说它们变得多么普遍了。

除了 CamelCase 和使用名词,还有哪些好的约定可以使用?

以上三个类可以使用哪些类名示例?

【问题讨论】:

  • 改用匿名内部类 ;-)

标签: java class naming-conventions computer-science classname


【解决方案1】:

好吧,如果您要使用ServerDataMailDataUserData,那么前缀肯定是了解我们正在谈论的Data 的好主意。但是如果类名混淆不是问题(也取决于项目的规模......)你可以在something.here.server包下重新组合你的所有类并保留简单的类名,如RequestDataImage.

一切都是为了最大限度地提高可读性和代码清晰度。

【讨论】:

    【解决方案2】:

    听起来您有一个ServerClient,它返回一个ServerResponse,而ServerResponseParser 又将其解析为ServerData。我对“图像”部分不太清楚。会是使用ServerClient 来获取ServerImages 的ImageRequester 吗?

    【讨论】:

      【解决方案3】:

      在我看来,Classname 需要表达保存/解析/请求的数据,Packagename 将应用程序功能的子集分组。

      例如,我们在包 user.data.roster 中有一个 UserImage,因此与显示用户名册有关的所有内容都会放在那里。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-31
        • 2012-06-03
        • 1970-01-01
        • 2017-02-01
        • 2013-02-09
        • 2017-12-19
        相关资源
        最近更新 更多