상태복원

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"))

Comments

Avatar
 2026년 7월 3일 08:40분

모든 상태가 복원 가능하지 않다는 것을 설계에서 명시하는 게 중요하네요.



Search

← 목록으로