【发布时间】:2010-08-23 16:08:52
【问题描述】:
我有一个 C# 项目,我在其中使用备忘录/命令模式来实现撤消/重做功能。该应用程序是一个 WPF 应用程序,它使用 StructureMap for IOC,具有广泛的单元测试,并通过使用 RhinoMocks 的接口使用模拟。
在我的代码中,我有一个 Operation 类,它代表所有可撤消的操作,我还有一个 IRepositoryWriter 接口,通过该接口路由所有对数据库的写入。
我想知道执行只有Operation 及其派生类应该能够使用IRepositoryWriter的策略的最佳方法是什么。
实现这一点的明显方法是使IRepositoryWriter 成为Operation 的受保护的嵌套接口。
优点:只有Operation 和派生类可以访问IRepositoryWriter。
缺点:不再可以与 StructureMap 或 Unit Tested 一起使用。
还有哪些其他解决方案?该政策不需要严格强制执行 - 只要给其他人在代码库上工作的提示就足够了。
【问题讨论】:
标签: c# design-patterns