java - 使用 GWT 的访问者设计模式

标签 java gwt visitor-pattern proxy-pattern

我有一个想法,它是这样的:

  1. 在服务端解析文件。
  2. 根据文件内容创建操作列表。
  3. 将操作列表传递给客户端。
  4. 让客户根据列表中的项目定义并执行操作。

与访问者模式一样,我们有一个用于操作的类,并且所有操作都继承 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/

相关文章:

java - Maven GWT 2.0 和 Eclipse

css - 不应用使用默认 GWT CSS 类名称的 UiBinder 内联样式

c++ - 什么更快 : down-cast from virtual base or cross-cast?

java - 对访客设计模式感到困惑

用于测试 AST 访问者的 Java 源代码

java - Spring验证字符串值是JSON

java - 通过 HTTP 发送 XML 时出现问题

java - 私有(private)构造函数对象初始化

java - spring boot 外部属性文件更新

gwt - 如何将现有的 JavaScriptObject 转换为 GWT 中的 java 原始类型?