![]() |
1
4
看起来像 Strategy pattern. 使用该策略模式,可以在程序运行时更改基础功能,并且可以在不更改数据层基本流的情况下创建新功能。[通过iHelper接口保证功能] |
![]() |
2
2
当前,您的代码将如下所示:
这是不容易测试的,因为您必须修改app.config才能更改您在测试中得到的帮助。也许您想测试当helper.executeNotQuery引发异常时会发生什么。 使用依赖项注入,类将更改为:
这里的权衡是,现在您必须处理在调用上下文中提供IDatahelper依赖项。这是IOC容器(如Unity、Windsor和StructureMap)进入的地方。但这更复杂,在您的情况下可能不值得这样做。 使用工厂(甚至静态)是很好的。它允许您使用其他模式(如decorator)来添加其他行为。考虑一个场景,在该场景中,您希望清理SQL字符串,并确保没有任何坏消息发送到您的数据库:
你的工厂可以这样做:
|
![]() |
3
1
对于数据访问类,它似乎是一个数据访问对象(DAO)模式,但我不确定您是如何实现它的。安迪·韦斯特是对的,你肯定有一个战略模式。 |
![]() |
Haim Ohayon · 这些链接之间有什么区别? 3 年前 |