这是Crudy反模式吗?

时间:2010-03-16 08:12:44

标签: wcf soa

目前我正在创建一个WCF服务,它必须连接到DAL,只需使用ADO.net和存储过程连接到数据库。

DAl将其数据库的响应写入数据合同,通过该服务将数据传输到客户端。

我读到这可能是反模式'CRudy Interface',但我不确定我是否正在分享数据合同。

如果我使用反模式,是否有人可以建议更好的模式用于我需要的行为?

3 个答案:

答案 0 :(得分:4)

嗯,似乎有一些关于CRUDy模式的争议,它的优点和缺点。至少,我会调用一个服务接口,让你编写这种代码来使用反模式(如注释here):

service.CreateCustomer(c);

foreach(Group group in c.Groups)

  service.AddCustomerToGroup(c.CustomerId, group.GroupId);

foreach(Person person in c.Contacts)

  service.AddCustomerContact(c.CustomerId, person);

暴露CRUDy接口本身有什么不好吗?我不会这么说。重要的是提供一个

的界面
  1. 封装有关基础流程的知识
  2. 不是很健谈

答案 1 :(得分:2)

它看起来像CRUD接口反模式,但是看一些接口示例来确认会很好。

这个paper在设计更好的服务接口方面有很好的讨论。

它包括对CRUD反模式的批评和替代

答案 2 :(得分:1)

如果你有一个肮脏的用例来实现你会得到一个肮脏的界面,不要流汗。反模式就是当你以肮脏的方式实施非肮脏的东西时。