【发布时间】:2010-10-04 22:26:01
【问题描述】:
好的,已经尝试了我的第一次 TDD 尝试,是时候反思一下了 并获得一些指导,因为这对我来说并不是那么成功。 该解决方案部分是使用现有框架进行的,也许 使 TDD 不太理想。似乎给我最大的部分 问题,是视图和控制器之间的交互。生病 举几个简单的例子,希望有人能告诉我我的 错了可以做得更好。
每个视图的接口都继承自一个基本接口,其中包含这些 成员(还有更多):
公共界面IView
{
无效 ShowField(字符串字段 ID)
无效 HideField(字符串字段 ID)
void SetFieldVisibility(string fieldId, bool visible)
无效 DisableField(字符串字段 ID)
void ShowValidationError(string fieldId)
...
}
具体视图的接口,然后为每个视图添加成员
像这样的领域
公共接口 IMyView : IView
{
字符串名称 { 获取;放; }
字符串 NameFieldID { 获取; }
...
}
你怎么看这个?是从一个通用接口继承的 好主意还是坏主意? 给我带来麻烦的事情之一是,我首先使用 ShowField 和 HideField 发现我宁愿使用 设置字段可见性。我没有改变方法的结果,但我 不得不更新我的测试,我认为这应该是必要的。是具有 多个方法做同样的事情,一件坏事?一方面两者 方法对于不同的情况都很方便,但它们确实使 接口,使接口比严格要求的更复杂。
没有通用界面的设计会更好吗?那将删除 fieldID,我不知道为什么,但我认为 fieldID 的东西很臭,我 可能是错的。 我只会在需要时制作 Show 和 Hide 方法,也就是说,如果 它们将被控制器调用。这将是一个不太通用的 解决方案并在视图中需要更多代码,但控制器代码 会更简单一些。
所以视图界面可能如下所示:
公共接口 IMyView
{
无效 ShowName()
无效隐藏名称()
字符串名称 { 获取;放; }
int 年龄 { 得到;放; }
}
【问题讨论】:
-
“现有框架”是什么意思。单元测试框架?
标签: model-view-controller interface tdd