具有不同属性和sql的Java状态模式
我有一个主域类,它可以有三种状态:
public class Broadcast {
private Long id;
private String title;
private Author author;
private State state;
// constructor, getters and setters
}
每个状态包含不同的属性
public abstract class State {
private Broadcast stateContext;
public State(Broadcast stateContext) {
this.stateContext = stateContext;
}
}
public class UpcomingState extends State {
private OffsetDateTime createdAt;
private OffsetDateTime scheduledAt;
public UpcomingState(Broadcast stateContext) {
super(stateContext);
}
// getters and setters
}
public class LiveState extends State {
private OffsetDateTime startedAt;
public LiveState(Broadcast stateContext) {
super(stateContext);
}
// getters and setters
}
public class EndedState extends State {
private OffsetDateTime startedAt;
private OffsetDateTime endedAt;
public EndedState(Broadcast stateContext) {
super(stateContext);
}
// getters and setters
}
假设某些状态可能被多次应用,如何在数据库中设计表来存储此类对象(例如,postgresql),同时仍保留有关状态转换的信息
例如,即将推出的->实时(首次数据)->实时(第二次数据)->;结束了
共 (0) 个答案