装饰器设计模式是扩展类功能的非常好的解决方案。例如,如果我想在现有的类方法上使用前处理和后处理方法,我可以创建一个装饰器并覆盖基类中的现有方法,并分别调用我的前处理和后处理方法。
我的问题是,在申请设计期间很少出现上述要求。我无法将我创建的所有方法标记为虚拟,以便装饰器可以覆盖它们。因此,我将不得不求助于隐藏方法。
是否有更好的方法来设计我的类,以便在我想要覆盖任何方法的情况下,可以以最佳方式完成。
答案 0 :(得分:1)
如果使用f.ex Reflector编译并打开dll,您将看到操作前添加了操作前和后操作。
- 使用xml-configs
也可以添加这种行为答案 1 :(得分:0)
通常当我装饰一个类时,我是通过组合而不是继承来实现的。这样你就不需要覆盖任何东西了。