【发布时间】:2016-10-09 23:00:03
【问题描述】:
我在看这种代码时想知道,如果从 函数式编程 的角度来看,有什么可以改进的吗?
你不必严格地重新实现我的例子来回答,如果你有不同的例子涉及交易,那就太好了。
using (var unitOfWork = _uowManager.Begin())
{
_paymentRepository
.InsertOrUpdate(payment); // Returns payment instance
// Being executed to get Payment.Id
_uowManager
.SaveChanges();
_otherRepository
.OtherMethod(payment.Id); // Could be changed as necessary
unitOfWork
.Complete()
}
以上代码基于ASP.NET Boilerplate 和实体框架(如果有帮助的话)。
【问题讨论】:
-
在函数式编程语言中,这类事情通常使用 monad 来处理。但是,C# 主要不是一种 FP 语言(尽管它在一定程度上支持它),并且在其中强行插入 monad,因此您可以说您正在使用函数式似乎不自然。
-
@Jeroen Mostert 能否请您提供一些来自功能世界的示例。 :)
标签: c# design-patterns functional-programming