- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 GWT 事件和地点框架来构建我的应用程序,结果很好。让我烦恼的一件事是 ActivityMapper
实现是 (1) 接收应用程序中的所有 View (2) 包含一个巨大的 if/else block ,用于根据接收到的位置实例化事件。随着观看次数的增加,情况只会变得更糟。
我已经在使用 Gin但我不知道如何在这里使用它。
如何减少或消除我的 ActivityMapper
中的样板?
最佳答案
还没有很好的答案。我心中有代码生成方案,但目前这一切都在白板上乱涂乱画。对于 Gin 用户来说,Place Scope 似乎很方便。
回复:if/else 级联,一种常见的方法是让您的 Place 对象实现访问者模式。例如。假设您已为您的事件设置了 AssistedInject(请原谅草率的现场注入(inject),这只是一个草图)。
class BasePlace extends Place {
<T> T acceptFilter(PlaceFilter filter);
}
interface PlaceFilter<T> {
T filter(FooPlace place);
T filter(BarPlace place);
T filter(BazPlace place);
}
public class MainActivities implements ActivityMapper {
@Inject FooFactory fooMaker;
@Inject BarFactory barMaker;
@Inject BazFactory bazMaker;
public Activity getActivity(PlaceChangeEvent e) {
return ((BasePlace)e.getPlace()).acceptFilter(
new PlaceFilter<Activity>() {
Activity filter(FooPlace place) {
return fooMaker.create(place);
}
Activity filter(BarPlace place) {
return barMaker.create(place);
}
Activity filter(BazPlace place) {
return bazMaker.create(place);
}
})
}
}
关于gwt - 消除 GWT ActivityMapper 样板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5802747/
我正在使用 GWT 事件和地点框架来构建我的应用程序,结果很好。让我烦恼的一件事是 ActivityMapper实现是 (1) 接收应用程序中的所有 View (2) 包含一个巨大的 if/else
我终于开始“了解”GWT了。任何时候,一个PlaceChangeEvent可以在应用程序的 EventBus 上触发像这样: History.newItem("token-for-some-new-p
此应用尝试在主显示页面上显示其 3 个 View ,如下所示: “页面顶部”的 AAAView “页面中间”的 BBBView “页面底部”的 CCCView 问题:虽然应用程序运行,但它不会如上所述
我最后想到您应该编写一个ActivityMapper 来解析/检查其 的Place 子类getActivity(Place)方法被传递,并返回相应的Activity呈现给用户。 所以这让我开始思考:在
我想知道 我做的事情(以下)是否太复杂了? 有没有更好的方法来更新 Activity 的主要内容,让我可以通过像#MainPlace:eventCalendar?storeId=这样的URL为商店的
我是一名优秀的程序员,十分优秀!