3
A
回答
3
本身并不危险 - 但有些时候,与您的服务,操作和数据合同(基本上是合同,接口)分开组装时非常有用 - 当您需要在服务器和客户端。
与客户共享整个服务实现代码(实现服务接口的实际服务类)真的毫无意义。另外:如果你在一个单独的文件(也可能是程序集)中有你的接口,那么编写单元测试更容易,特别是如果你想模拟一个服务。如果将界面和类混合到一个文件中,会有点混乱。
所以我认为这是一个有用且有用的最佳实践,它为接口和实现提供单独的文件(实际上:每个文件只有一个类),并将所有服务和数据合同(和错误合同)放入单独的部件。
1
其实,我喜欢超越两个文件,并有两个单独的项目。一个项目包含接口定义。主要价值在于集成测试。我喜欢用WCF客户端创建第三个项目。该客户端访问“共享”程序集中的接口。
请记住mantra of Testivus:“编写(生产)代码时,考虑测试;写测试时,考虑代码。”
相关问题
- 1. 是否有任何理由将引用留在AssemblyInfo.cs中的System.Runtime.CompilerServices?
- 2. 是否可以将NDbUnit测试数据保存在单独的XML文件中?
- 3. 是否有任何理由我不应该缓存在nHibernate中?
- 4. Java - 是否有任何理由检查单例是否为空?
- 5. 当你使用hibernate.cfg.xml时,是否有任何理由保留c3p0.properties文件?
- 6. 是否有任何理由对群集使用锁文件?
- 7. 是否有任何理由使用jpg文件扩展名?
- 8. 是否有任何理由Object.freeze函数?
- 9. 是否有任何理由使用System.Uri?
- 10. 是否有任何理由使用[:over @:?
- 11. 是否有任何理由使用isset()?
- 12. C - 如何将自己的头文件保存在单独的文件夹中
- 13. 对于每个控件都有单独的ErrorProvider是否存在任何问题?
- 14. 将结构/常量保存在单独的头文件中
- 15. Python:是否有任何理由*不*缓存对象的散列?
- 16. 是否可以将任意数据保存到C#文件中?
- 17. 是否有任何理由在C#中使用私有属性?
- 18. csv python文件没有保存在单独的行中
- 19. 是否有任何理由将.snk文件与项目源一起发布?
- 20. 将Excel文件的每一列保存在单独的文本文件中
- 21. 如何将网页的组件保存在单独的文件中
- 22. 是否有任何理由修改iOS应用程序中的main.m文件?
- 23. 如何检查nsfilemanager中是否存在任何现有文件?
- 24. 将我的输出代码保存到单独的文件中?
- 25. 如何在MySqlWorkbent的单独sql文件中保存插入sctipts?
- 26. 是否有任何理由在Swift中使用选择器?
- 27. 是否有任何理由在Internet Expolorer中用JScript替换JavaScript?
- 28. 是否有任何理由在微软ISV中使用TFS 2010?
- 29. 是否有任何理由在VBA中使用ENUM?
- 30. 是否有Cassandra Erlang接口的任何文档?
同意,+1给你,只是一点点补充:一个一级文件。你不觉得它在某些方面适用于此吗? – 2010-11-15 19:02:21
谢谢!这很有道理,看起来很干净。我喜欢! – Scottie 2010-11-15 19:31:08