5 java mvp gwt gwt-activities gwt-places
我终于开始"获得"GWT了.在任何时候,PlaceChangeEvent都可以在应用程序上触发EventBus:
History.newItem("token-for-some-new-place");
Run Code Online (Sandbox Code Playgroud)
这增加了该事件的总线,因此注册ActivityManager舀起来,并咨询其内部ActivityMapper给它Activity与相关PlaceChangeEvent的Place.
所述Activity(类似于从MVP/MVC演示者或控制器对象),则获得所需要的任何数据(通过RPC调用向服务器),并且执行任何业务逻辑和配置的最终视图(通常是Composite某种形式的)来显示.
只要我们谈论的是一个超级简单的GWT应用程序,它的主页上只有一个显示区域,那么就像我说的那样,我"得到"它.
我现在窒息的地方是当你有一个包含多个显示区域的应用程序(可以彼此异步更新的区域)时会发生什么.
所以我问:
ActivityMapper应该是多么精细?是否有一个应用程序范围AppActivityMapper将所有Places 映射到所有的Activity,或者是否应该有某种ActivityMapper层次结构/分解,你有多个映射器?(如果您对此的回答类似于" 这取决于您的应用程序的需求 ",那么请解释哪些要求/需求驱动适当的粒度级别!)Place表示应用中的URL令牌(为了使其成为Place可收藏状态),那么当您拥有一个具有多个显示区域(D1,D2,D3)的更复杂应用时会发生什么.一个URL令牌(即http://myapp.com/#token-for-some-new-place)如何映射到D1,D2和D3?这不意味着ActivityMapper#getActivity必须能够返回一个活动列表(List<Activity>),其start(AcceptsOneWidget, EventBus)方法将被调用吗?感谢您的帮助 - 代码示例总是摇滚.
A Place代表一个地方.它回答了我来自哪里的存在问题?,我在哪里?和我在哪里去?.
对于给定的地方,向用户显示的屏幕可能很复杂,并且被分成一堆显示区域.每一个都由一个人来管理ActivityManager,它会询问ActivityMapper哪一个Activity地方使用,使一切松散耦合(活动不(必须)知道他们被使用的地方,哪个地方,其他活动同时进行,等等.)
因此,您将不会有一个映射器返回一个活动列表,而是一个映射器列表,每个映射器返回一个活动.
看到: