Java 只有一个字符串字段的模型类
我有一个类,我希望重构如下:Java 只有一个字符串字段的模型类,java,class,field,Java,Class,Field,我有一个类,我希望重构如下: class PersonId { String personId //getter, setter } class Person{ PersonId personId; //other fields... } 对我来说,类PersonId似乎是不必要的,因为它只包含一个id值为的字符串字段。实际上,这个字符串字段可以直接放在类Person中。 类设计是否有允许类“PersonId”的基本规则? 哪个缺点有类“PersonId”?据我
class PersonId {
String personId
//getter, setter
}
class Person{
PersonId personId;
//other fields...
}
对我来说,类PersonId似乎是不必要的,因为它只包含一个id值为的字符串字段。实际上,这个字符串字段可以直接放在类Person中。
类设计是否有允许类“PersonId”的基本规则?
哪个缺点有类“PersonId”?据我所知,如果您的类PersonId仅包含此字符串,那么您可以将其直接放在Person类中。另一方面,如果您的类包含的内容不止这些(方法或更多属性),那么它是有用的 那么我能看到的唯一优势是,您可以将同一个PersonId赋予多个PersonId,如果您修改一个,那么它将修改其他PersonId:
Person p1 = new Person();
Person p2 = new Person();
PersonId id = new PersonId();
id.id = "abc";
p1.id = id;
p2.id = id;
System.out.println(p1.id.id); // abc (for p1 & p2)
id.id = "foo";
System.out.println(p1.id.id); // foo (for p1 & p2)
id.id = "ba";
System.out.println(p2.id.id); // ba (for p1 & p2)
这些类来自哪里,是您设计的还是来自某个应用程序/系统?在不了解背景的情况下很难给出答案,但如果忽视历史,最明显的答案是跳过PersonID类。这不是我的,我只看到它,对我来说似乎没有什么用处。我甚至使模型更复杂。所以我想知道,如果有一些类设计的规则,这表明,像这样做是一种不好的做法,我很确定这没有设计规则,更像是一个常识性的解决方案。看起来对我来说是一个额外的步骤,尽管我不知道它的背景。它是否经过多个类的扩展,然后向下投射用于反转个人id的控制?因为使用spring的方式,个人id可以根据使用情况有不同的类型?即使在这种情况下,我也假设某个地方有一个派生类,它不只是一个字符串