有时当我使用一个类(我们称之为它MyClass)时,我需要在本地更改它的行为并确保之后恢复默认行为。
我正在考虑创建另一个类(例如MyClassBehaviorSwitcher)实现IDisposable. 在构造函数中,它将设置一些静态属性并在Dispose()方法中取消设置。MyClass然后将考虑静态属性的值。使用示例:
using (new MyClassBehaviorSwitcher()) {
// Work with MyClass, which will behave differently
// until the end of the block.
}
这样,我确保之后恢复默认行为。即使客户端代码不使用using,该对象也会在某个时候被释放。
我的问题:这是一种模式吗?这些类有命名约定吗?或者也许我忽略了一些东西,并且有更好的方法来实现我想要的?