1

我希望对现有的 WCF 服务进行一些更改。我想知道是否最好制作诸如 Save() 之类的超级方法,它会使用收到的值来决定要采取什么行动,或者我是否应该将这些行动分解成它们自己的方法并将这些方法公开给消费者决定何时打电话给他们。

例如,我有一个支付处理程序,它在我们的商家进行支付尝试及其结果时接收通知。让处理程序传入具有状态更改的对象并让超级方法尝试弄清楚如何处理它(假设没有错误将数据弄乱)或创建一个单独的方法来扩展对我来说会更好吗?所以意图是明确的。

请注意,super 方法还负责保存数据和更改过程中其他步骤的状态。

我已经用谷歌搜索了,但还没有真正找到任何具体的东西。对我来说,超级方法违反了 SOLID,但有人告诉我 WCF 有一套不同的标准,最好制作超级方法,这样消费者就不必思考了。

欢迎任何反馈:)

4

1 回答 1

2

我发现如果服务运营可以存在于具有商业意义的水平上,那是最好的。

这意味着,如果业务人员被告知操作名称,他们将大致了解调用该操作会做什么,并且可以猜测它需要传递给它的数据。

为此,您的操作应全部或部分完成某些业务流程。

例如,以下操作签名具有业务意义:

void SolicitQuote(int brokerId, int userId, DateTime quoteRequiredBy);

int BindPolicyDocument(byte[] document, SomeType documentMetadata);

Guid BeginOnboardEmployee(string employeeName, DateTime employeeDateOfBirth);

如果您在考虑服务组合时使用此原则,那么好处是您很少会偏离最佳路径;您知道每个操作的作用,并且您知道何时不再需要某个操作。

另一个好处是,由于业务流程很少更改,因此您不需要太多更改服务合同。

于 2013-10-04T07:09:53.133 回答