我有一个想法,它是这样的:
- 在服务端解析文件。
- 根据文件内容创建操作列表。
- 将操作列表传递给客户端。
- 让客户根据列表中的项目定义并执行操作。
与访问者模式一样,我们有一个用于操作的类,并且所有操作都继承 Action 接口(interface)。然后客户将实现访客。在 Java 中,它会是这样的:
public interface Action {
void act(Visitor visitor);
}
public class PerfectAction implements Action {
void act(Visitor visitor) {
visitor.bePerfect();
}
}
public class VisibleAction implements Action {
void act(Visitor visitor) {
visitor.beVisible();
}
}
public interface Visitor {
void bePerfect();
void beVisible();
}
问题
我无法为 Action 和 Visitor 接口(interface)创建代理类。它们不包含 setter 和/或 getter。另外它们不包含任何数据。是否可以将访问者对象上应该调用哪个方法的知识从服务传递到客户端?
最佳答案
请求工厂只能移动数据(EntityProxy
和/或ValueProxy
),并要求服务器代表客户端执行操作(RequestContext
)。
要传输操作,客户端和服务器首先需要共享可以执行的操作的知识。
然后你有两个解决方案:
- 转向 GWT-RPC
- 因为无论如何,客户端都必须预先知道每个可能的操作,因此创建一个枚举或其他任何内容来标识每个操作,并将这些标识符传输给客户端,客户端会将它们映射回要执行的具体操作。
关于java - 使用 GWT 的访问者设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12296747/