首页 / C# / c# – 半复杂页面上的MVP
c# – 半复杂页面上的MVP
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 半复杂页面上的MVP,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1475字,纯文字阅读大概需要3分钟。
内容图文
![c# – 半复杂页面上的MVP](/upload/InfoBanner/zyjiaocheng/768/d397aec9ecbb41079cc25be1d46e7caa.jpg)
我正在使用.NET 3.5表单应用程序,行为稍微复杂.这是一本书库存.为了给您一个想法,工作流程将是:
>用户输入ISBN代码
>如果ISBN有效,请检查它是否存在,
>如果它有效并且存在,则显示书籍详细信息并启用保存按钮,如果没有,则显示“添加书籍”按钮,
>如果它无效,请显示错误,
>最终,用户将单击“保存”,因此必须保存该条目.
这有四个责任:
>验证ISBN,
>检查书的存在,
>显示书籍详情,
>保存新书详细信息.
我的问题是:我应该将应用程序逻辑保留在一个MVP结构中还是应该将其拆分为四个MVP结构,每个责任一个?
将它保存在一个MVP结构中会
>使模型更复杂
>使测试设置更复杂(每个测试的大量设置代码,以选择正确的验证器,返回的书等,即使它们没有被使用),
>使表示逻辑更容易遵循
将它保存在单独的MVP结构中会
>使模型更简单,
>为每个演示者创建更多但更简单的测试,
>在演示者之间的交互中增加复杂性(如何向演示者发出ISBN有效的信号,以便可以显示书籍详细信息?)
我正在尝试Presenter First-principles,所以:
– 保持视图愚蠢(所以没有像“Presenter one valid the ISBN”这样的事件),
– 让演示者无国籍,
– 保持模型简单(足够)
任何人都知道最好的方法是什么?
解决方法:
我会选择一位Presenter,但将ISBN号的验证等委托给服务.
在演示者中以这些方式处理正在输入的ISBN的内容:
public void IsbnEntered()
{
var isbn = view.Isbn;
if (isbnService.NumberIsValid(isbn))
{
var details = isbnService.RetrieveDetailsForIsbn(isbn);
if (details != null)
{
view.Display(details);
view.EnableSaveButton();
}
else
{
view.DisplayError("ISBN could not be found");
}
}
else
{
view.DisplayError("Invalid ISBN");
}
}
这里的职责定义明确. IsbnService负责ISBN处理,View用于显示和输入检索,Presenter负责管理两者之间的交互.
内容总结
以上是互联网集市为您收集整理的c# – 半复杂页面上的MVP全部内容,希望文章能够帮你解决c# – 半复杂页面上的MVP所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。