나는 동작을 설명하기 위해 데코레이터 패턴을 사용하고, RPC는 거래 후GWT는 직렬화 및 장식 패턴
public abstract class Action implement Serializable
{
boolean isDecorated = false;
public Action() {} // default constructor for Serialization
}
public abstract class ActionDecorator extends Action
{
private Action _decoratedAction;
public ActionDecorator() // default constructor for Serialization
{}
public ActionDecorator(Action action)
{
_decoratedAction = action;
_decoratedAction.isDecorated = true;
}
}
를 호출에 나는 그 작업을 사용하고 싶습니다, 나는 DecoratorAction 느릅 나무는 액션이 포함되어 수신 할 수 있지만, _DecoratedAction의 isDecorated 멤버는 false로 설정됩니다.
내 객체를 재구성하기 위해 기본 (0 인수) 생성자가 호출 되었기 때문에 내 데코레이터와 데코 레이팅 된 액션 모두 isDecorated (false)의 기본값을 갖습니다.
"_decoratedAction.isDecorated = true;"를 복사 할 수 없습니다. 그 시점에서 _decoratedAction가 초기화되지 않았기 때문에 (ActionDecorator의 0 인수 생성자에서). ... 내가 수동으로 각 트랜잭션 후에 부울을 설정할 수 있지만, 추가 개체 초기화를 (느릅 나무 잊어 가능)마다 내 동료가 작업 개체를 사용하려는 피하기 위해 더 좋을 것이다
물론
ActionDecorator의 메소드를 오버라이드 (override) 할 수 없습니다. 데코레이터를 장식 할 수 있습니다. isDecorated의 필요성은 구현에 따라 매우 다르며 여기서는 실제로 문제가되지 않습니다. A의 생성자가 초기화/수정하려는 객체 B를 취하는 경우 네트워크를 통해 A를 전송하는 방법을 파악할 수 없습니다 내가 B에게 한 수정을 풀지 않고 – Garagos