Mar*_*eon 47 java naming-conventions data-transfer-objects
在这种情况下,您有一个客户端库传递给API的"传输对象"(POJO只有getter/setter),命名传输对象的最佳方法是什么?
package com.x.core;
public class Car {
private String make;
private String model;
public Car(com.x.clientapi.Car car) {
this.make = car.getMake();
this.model = car.getModel();
}
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,您的主类和传输对象都具有名称Car
.它们在不同的包装中,但我认为使用相同的名称令人困惑.有关如何命名传输对象的最佳实践吗?
cas*_*lin 160
D ata T ransfer O bject类应遵循 Java语言规范中定义的名称约定:
类类型的名称应该是描述性名词或名词短语,而不是过长,混合大小写的每个单词的第一个字母.
Run Code Online (Sandbox Code Playgroud)ClassLoader SecurityManager Thread Dictionary BufferedInputStream
[...]
后面添加一个类名DTO或DTO是不是真的有意义的,并没有告诉太多关于类本身.考虑使用描述类的目的的名称.
以下是您可以使用的名称建议的非详尽列表:
注1:首字母缩略词或所有大写单词是否应作为单词处理,我想这取决于你.检查Java API,你会发现一些像ZipInputStream
/的绊脚石GZIPInputStream
.两个类都在同一个包中,名称约定不一致.HttpURLConnection
也没有显示与首字母缩略词的任何一致性.
注2:上面列出的一些名字是从Richard Dingwall撰写的这篇文章中借来的(原始文章似乎已经不再可用,所以这里是来自Web Archive 的缓存副本).
IaC*_*der 34
我通常将"DTO"添加到类名的末尾,并将所有DTO放在他们自己的包中.在您的示例中,我将其称为com.x.core.dto.CarDTO.
添加DTO或DAO或其他任何东西都会违反DRY.FQN非常好,特别是如果它们真的是一样的话.