rau*_*uts 9 c# enterprise-library
这更像是一个很好的练习题.我想提供不同的通用库,如Logging,caching等.有很多第三方库,如MS企业库,log4Net,NCache等.
我想知道它是一个很好的做法,直接使用它们或在每个服务上创建包装器并使用DI在代码中注入该服务.
问候
这是主观的,但也取决于图书馆.
例如,log4net或NHibernate具有严格的基于接口的API.没有必要包装它们.如果您之间没有任何接口,还有其他库会使您的类难以测试.在那里写一个干净的界面可能是明智的.
有时建议只让一小部分代码访问API,例如NHibernate或GUI库.(注意:这不是包装,这是构建抽象层.)另一方面,减少对log4net调用的访问没有意义,这将在整个应用程序中使用.
log4net可能是一个很好的例子,包装只是矫枉过正.有些人遭受"包皮炎",这是一种反模式(有时被称为"棉花包裹羊毛"),只会产生更多的工作.Log4net有一个如此简单的API,并且可以高度定制,它们使得它最好的包装器.
您会发现包装库不允许您只是将其与其他产品交换.升级到更新的版本也不会更容易,而是需要更新您的包装器.
| 归档时间: |
|
| 查看次数: |
2399 次 |
| 最近记录: |