Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何命名包含Id和name的基类?_Java_Architecture_Naming Conventions - Fatal编程技术网

Java 如何命名包含Id和name的基类?

Java 如何命名包含Id和name的基类?,java,architecture,naming-conventions,Java,Architecture,Naming Conventions,我在系统中寻找一个类的名称,该类在java环境中具有Id(Long)和name(String) 他们对这种类型的类有什么约定吗?或者只是与体系结构相关吗?没有听说过这种情况下的约定。只要问问你自己这门课的目的是什么,这个神奇的名词就会出现。在大多数情况下,它与应用程序有关。有时(如果所有值对象都需要ID和名称),人们会调用这样的类BaseEntity或AbstractEntity。如果您想使用“酷”java约定,请将该类称为Nameable我看到一些地方使用了IdAndName等名称。我不喜欢它

我在系统中寻找一个类的名称,该类在java环境中具有Id(Long)和name(String)


他们对这种类型的类有什么约定吗?或者只是与体系结构相关吗?

没有听说过这种情况下的约定。只要问问你自己这门课的目的是什么,这个神奇的名词就会出现。

在大多数情况下,它与应用程序有关。有时(如果所有值对象都需要ID和名称),人们会调用这样的类
BaseEntity
AbstractEntity
。如果您想使用“酷”java约定,请将该类称为
Nameable

我看到一些地方使用了
IdAndName
等名称。我不喜欢它。此类名称与类的当前状态过于耦合。很可能新的提要将添加到此类中或从此类中删除,然后名称将不再准确

因此,我鼓励大家从这两个方向思考:

  • 这个类代表什么?如果这是所有具有“ID”和“Name”的“things”的超类,那么您可以将其称为
    NamedEntity
    (术语
    Entity
    通常用于描述保持不同标识的持久对象)

  • (或者)您真的想让它成为许多其他类扩展的超类吗?听起来好像您可以移动到一个设计,如果您的实体将在字段中保存这样一个对象(而不是从其类继承)。然后,您可以引入一个
    Nameable
    接口,该接口将定义
    getId()
    getName()
    并让这些实体实现这些方法(代码量方面的成本是边际的)。这将使您更好地分离关注点,减少耦合(继承是最强大的耦合形式),并且不会利用只能玩一次的
    扩展


类的名称应基于它所表示的内容,而不是任何成员变量的类型(如果添加了新成员或更改了现有成员的类型,该怎么办?)或保留SNAmeAnd的BaseClass:)可命名界面听起来是个好主意。远离联轴器。