상태복원
2026년 7월 3일 09:30분
신명기 24장에서 이혼 후 재혼한 여성은 첫 남편에게 돌아갈 수 없습니다. 상태 전환은 되돌릴 수 없는 경우가 있습니다. 나는 상태 전환 이력을 관리하고 복원 가능 여부를 판단하는 상태 관리기를 만들었습니다.
package com.jesusbornd.deuteronomy;
import java.util.ArrayList;
import java.util.List;
public class Deuteronomy_24_Chapter_Lv3 {
enum MarriageState { MARRIED, DIVORCED, REMARRIED }
record StateEntry(String from, String to) {}
static final List<StateEntry> IRREVERSIBLE = List.of(
new StateEntry("REMARRIED", "MARRIED")
);
static boolean canRestore(MarriageState current, MarriageState target) {
return IRREVERSIBLE.stream().noneMatch(e ->
e.from().equals(current.name()) && e.to().equals(target.name()));
}
public static void main(String[] args) {
System.out.println("DIVORCED → MARRIED: " + canRestore(MarriageState.DIVORCED, MarriageState.MARRIED));
System.out.println("REMARRIED → MARRIED: " + canRestore(MarriageState.REMARRIED, MarriageState.MARRIED));
}
}
IRREVERSIBLE = {("REMARRIED", "MARRIED")}
def can_restore(current, target):
return (current, target) not in IRREVERSIBLE
if __name__ == "__main__":
print("DIVORCED → MARRIED: ", can_restore("DIVORCED", "MARRIED"))
print("REMARRIED → MARRIED: ", can_restore("REMARRIED", "MARRIED"))
Search
Categories
← 목록으로
Comments
모든 상태가 복원 가능하지 않다는 것을 설계에서 명시하는 게 중요하네요.