Rog*_*son 13 c# lambda design-patterns functional-programming dynamic
这与函数式编程取代GoF设计模式有些关系吗?
自从在C#中引入lambdas和动态,是否有任何标准设计模式可以被认为是过时的或使用lambdas或其他语言特性以其他方式解决?
例如,C#的动态功能现在可用于执行多种方法. http://achoiusa.wordpress.com/2009/08/27/exploring-c-4-0-multimethods/ (我想Marc Gravell有一些关于此的帖子?)
就个人而言,我倾向于使用现在的Func of Tn来做工厂.
例如
public static class SomeFactory
{
     public static Func<IUnitOfWork> GetUoW = 
       () => new EF4UoW(new SomeModelContainer());
}
// usage
var uow = SomeFactory.GetUoW();
// testabillity
var testUoW = new InMemUoW();
testUoW.Add(new Customer()...);
SomeFactory.GetUoW = () => testUoW;
// the service can get an UoW using the factory
var result = SomeDomainService.DoStuff(...); 
有人有其他例子吗?
[编辑]当然,模式本身并不过时,但有些模式是范式特定的,因此C#现在是多范式,C#的一些功能属性可能会使一些OOP模式缺乏吸引力.
| 归档时间: | 
 | 
| 查看次数: | 1201 次 | 
| 最近记录: |