내 제목은 약간의 차이입니다. 여기에 제가 이야기하는 문제가 있습니다. 동작이 행마다 달라질 필요가있는 테이블을 나타내는 클래스
내가 설정했다고 가정하면 유지class Bill
{
public String legislationID;
public BillStatus currentStatus;
}
//and
class BillStatus
{
public String description;
}
는 BillStatus 입법 조각 가능 상태 당 하나의 행으로 테이블에 대응한다. (예 : "On House Floor", "On Senate Floor"등). 즉시 행동이 BillStatus의 어떤 인스턴스가 빌에 연결된에 따라 다를 시작으로
이 모든 것이 표현하기 어려워진다 :
난 항상로 실행 문제는 이것이다. 두 가지 옵션이 있습니다 :
1) 현재 BillStatus에 따라 분기 동작이 많은 Bill의 스위치 2) Bill을 매개 변수로 사용하는 bill 상태의 메소드와 인스턴스의 ID에 따라 다른 논리를 실행하는 스위치가있는 스위치 . (공용 인터페이스를 구현하는 클래스를 모방하는 종류의)
이 두 가지 방법 모두 엉뚱한 것처럼 보입니다. 그런 다음
class abstract BillStatus
{
public abstract String getDescription();
public abstract void callForVote(Bill bill);
}
: 내가 할 수있을 싶은 것은 이것이다
@SpecialEntityTag(whenRowValue="HOUSEFLOOR")
class BillStatusHouseFloor extends BillStatus
{
/* special overrides for some methods */
}
class BillStatusGeneric extends BillStatus
{
/* standard implementation of BillStatus */
}
이 공통의 문제가 될 수있다. 내가 잘못 생각하고 있니? 기본적으로 목표는 프리미티브가 아닌 자식 속성의 특정 값으로 변경되는 동작을 캡슐화하는 것입니다.
작동하지 않는 또 다른 해결책 : 각 주별 청구서에 대한 하위 클래스의 Bill이있을 수 있습니다. Bill의 행동에 영향을주는 상태와 유사한 속성이 3 가지 이상 존재하기 때문에 제 경우에는 작동하지 않습니다. 이것은 내가 [재산 1의 집계] * [재산 2의 집계] * [부동산 3의 집계] 하위 법안을 필요로 함을 의미합니다. – user426724