我正在研究一个流畅的框架,我希望从其他工程师那里获得一些反馈,以了解哪个流畅的表达与我的用户故事最为一致。
用户故事:“作为使用流畅框架X的软件工程师,当框架的事件聚合器发布事件时,我想将此事件映射/路由到我的控制器上的方法,然后在UI容器中显示视图。”
选项1:
Map<MyEvent>()
.To<MyView, MyController>(controller => controller.HandleMyEvent());
选项2:
Map<MyEvent>()
.To<MyView>()
.Via<MyController>(controller => controller.HandleMyEvent());
选项3:
Map<MyEvent>()
.To<MyController>(controller => controller.HandleMyEvent())
.Show<MyView>()
.InContainer<MainTabContainer>();
答案 0 :(得分:1)
没有系统的整个上下文,有点难以说。例如,我不知道UI容器的作用,为什么它仅在选项3中定义,它对于两个第一选项意味着什么。我假设有一些约定决定默认使用哪个UI容器。
选项1 看起来不像自然语句,并且连续两个通用参数使其比选项2&amp; 3。
选项3 包含两个句子,Show
是此处的第二个动词。我喜欢每个链只有一个句子的API,但这可能只是我个人的偏好。
选项2 是一个具有明确含义和简短单词的自然句子,我最喜欢它。如果只有一种方法可以覆盖默认的UI容器(使用像To<MainTabContainer>().In<MyView>()
这样的东西),那肯定是最好的。
答案 1 :(得分:1)
“作为软件工程师使用流利 框架X,当框架的时候 事件聚合器发布一个事件,我 想要将此事件映射/路由到 我的控制器上的方法,然后显示 UI容器中的视图。“
这就是你希望你的代码说出来的声音:
将事件X发送到我的控制器并在UI容器中显示结果。
然后你将它提供给谷歌英语到c#翻译,你得到:
Route<MyEvent>().To<MyController>(c=>c.HandleMyEvent()).AndShowResultIn<MyUIContainer>();
在设置事件路由时指定视图和控制器。需要指定视图 - 控制器映射,但不能与设置事件路由的句子相同。所以单独做:
Bind<MyView>().To<MyController>();
或将控制器绑定到视图,然后将事件路由到视图,而不是控制器,我不会。坚持通过控制器路由事件。