Java 如何命名包含Id和name的基类?
我在系统中寻找一个类的名称,该类在java环境中具有Id(Long)和name(String)Java 如何命名包含Id和name的基类?,java,architecture,naming-conventions,Java,Architecture,Naming Conventions,我在系统中寻找一个类的名称,该类在java环境中具有Id(Long)和name(String) 他们对这种类型的类有什么约定吗?或者只是与体系结构相关吗?没有听说过这种情况下的约定。只要问问你自己这门课的目的是什么,这个神奇的名词就会出现。在大多数情况下,它与应用程序有关。有时(如果所有值对象都需要ID和名称),人们会调用这样的类BaseEntity或AbstractEntity。如果您想使用“酷”java约定,请将该类称为Nameable我看到一些地方使用了IdAndName等名称。我不喜欢它
他们对这种类型的类有什么约定吗?或者只是与体系结构相关吗?没有听说过这种情况下的约定。只要问问你自己这门课的目的是什么,这个神奇的名词就会出现。在大多数情况下,它与应用程序有关。有时(如果所有值对象都需要ID和名称),人们会调用这样的类
BaseEntity
或AbstractEntity
。如果您想使用“酷”java约定,请将该类称为Nameable
我看到一些地方使用了IdAndName
等名称。我不喜欢它。此类名称与类的当前状态过于耦合。很可能新的提要将添加到此类中或从此类中删除,然后名称将不再准确
因此,我鼓励大家从这两个方向思考:
- 这个类代表什么?如果这是所有具有“ID”和“Name”的“things”的超类,那么您可以将其称为
(术语NamedEntity
通常用于描述保持不同标识的持久对象)Entity
- (或者)您真的想让它成为许多其他类扩展的超类吗?听起来好像您可以移动到一个设计,如果您的实体将在字段中保存这样一个对象(而不是从其类继承)。然后,您可以引入一个
接口,该接口将定义Nameable
和getId()
并让这些实体实现这些方法(代码量方面的成本是边际的)。这将使您更好地分离关注点,减少耦合(继承是最强大的耦合形式),并且不会利用只能玩一次的getName()
牌扩展