有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

具有不同属性和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) 个答案