【发布时间】:2021-11-21 12:47:08
【问题描述】:
免责声明我已经有一段时间没有在这里提出问题了,所以请对我温柔:)
我正在尝试从我的业务对象中生成一个状态,理想情况下它应该保持封装状态。我的想法是定义一个具有内部表示的类,并有办法返回一个状态对象,该对象稍后将映射到不同的视图表示。所以我想象了这样的事情:
State state = order.State();
Order 和 State 的定义如下:
public class Order {
private String identifier;
record State(String number) {
public State() {
this(identifier);
}
}
}
所以我的问题是如何定义我的内部记录和外部类之间的关系,以便我可以访问实例属性(最好使用默认记录构造函数)并将它们映射到不可变结构而不遇到静态、非静态上下文问题?
(我忽略了在外部类上创建附加方法的可能性,例如:toState())
【问题讨论】:
-
你不知道:嵌套记录类是隐式静态的。让
State有一个Order成员并通过它访问它的属性。 -
@SotiriosDelimanolis 谢谢你,我想知道为什么我遇到了麻烦,但显然有对这个问题的解释:“如果记录类本身是嵌套的,那么它是隐式静态的;这避免了一个立即封闭的实例,它将默默地向记录类添加状态。” link您介意根据您的评论创建一个答案吗,因为它实际上回答了我的问题?
标签: java oop domain-driven-design