【问题标题】:Directories hierarchy for a project having a "front-end" and a "backend" side (gwt application)具有“前端”和“后端”端(gwt 应用程序)的项目的目录层次结构
【发布时间】:2012-05-10 05:21:56
【问题描述】:

我想知道如何为我的应用程序正确地构建我的目录。我正在使用 GWT(也是 GWTP)和 GAE,并且我有一个网站(“正常模式”)及其管理(“管理模式”)。所以我做了以下事情:

    • com
      • mananaSeguro
        • 客户端
          • 核心
            • 管理员
              • 应用程序
              • 第1页
              • 第2页
              • 小部件
              • 等等……
            • 正常
              • 应用程序
              • 第1页
              • 第2页
              • 小部件
              • 等等……
            • 错误
            • 身份验证
      • 资源
      • 等等……
    • 服务器
      • 古斯
      • 处理程序
        • 管理员
        • 正常
    • 共享
      • 动作
        • 管理员
        • 正常
一切都不完整(域名...),因为我现在正在学习 GWTP 和 GWT 和 GAE。我还阅读了有关使用不同模块的信息,主要是因为它会减小要下载的应用程序的大小,但我确实在网上找到了任何简单的示例。如果有人可以帮助我,那就太好了,因为我认为项目目录结构非常重要。谢谢。

【问题讨论】:

    标签: gwt code-organization


    【解决方案1】:

    我已经使用 GWT 构建了一个相对较大的应用程序,并且我遵循了 Google 的最佳实践,并且我已经看到是的,它可以工作。通常,GWT People 会告诉我们 MVP。

    MVP 将您的应用程序分解为可帮助您管理整个应用程序开发的部分。

    通常,当您使用 MVP 时,您的应用程序将包含入口点,该入口点将包含:

    public class Contacts implements EntryPoint {
    
      public void onModuleLoad() {
        ContactsServiceAsync rpcService = GWT.create(ContactsService.class);
        HandlerManager eventBus = new HandlerManager(null);
        AppController appViewer = new AppController(rpcService, eventBus);
        appViewer.go(RootPanel.get());
      }
    }
    

    如您所见,它创建客户端 RPC、用于通知事件的事件总线、作为根的 applicationcontroller 并控制应用程序中的所有内容,例如更改视图、注册事件

    应用程序控制器还实现了ValueChangeHandler<String> 以允许它在历史记录发生更改时听到并据此采取行动,例如更改视图。 然后你将拥有:

    1. 型号
    2. 观看次数
    3. 演讲者

    模型可以与您的服务器共享。演示者声明了视图实现的接口。然后,演示者和视图通过接口进行对话,演示者和服务器通过您在入口点声明并注入应用程序控制器的rpcService 进行对话。

    另外,如果你以这种方式实现你的应用程序,你会受益,因为当你使用 JUNIT 进行测试时,你可以只测试演示者,因此绕过视图。因为如果你在测试中包含视图,它会花费很多时间。视图将声明小部件,但演示者可以从视图中导入接口以与小部件交互

    最后,应用层次结构如下:

    --com.example.name.clients:

    --应用控制器 --name.java
    --name.Service.java
    --name.ServiceAsync.java

    --com.example.name.events:

    --com.example.name.presenters:

    --com.example.name.views:

    --com.example.name.models:

    --com.example.name.server:

    --com.example.name.shared:

    查看here 了解更多信息,

    【讨论】:

    • 嗨,这不是我的问题。我知道MVP等的优势...我只想知道如何组织我的文件,因为我有一个管理员和一个网站,就像两个小应用程序一样,公司中的专业人士如何组织这样的项目?我想知道他们把他们的管理文件等放在哪里......例如,你给我的链接只是给出了一个不使用管理端的 MVP 应用程序的例子,所以它不好。不过谢谢你的帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-02-18
    • 2019-05-10
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    • 2014-12-07
    • 2018-08-10
    相关资源
    最近更新 更多