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