所以装饰器模式允许你动态地向一个类添加行为,对吧?但是,装饰器必须从获得行为的类的基类继承,或者必须实现其接口之一。事实上,我能回忆起的所有示例都有一个公开的函数,因此应用装饰器效果很好,但是如果你想让装饰器添加行为,例如记录到没有相同接口的各种类 - 它不会工作. 我在这里错过了什么吗?这是否暗示我想要记录的所有类都应该包装在同一个接口中,比如命令或其他东西?
例如
class A
{
whatever();
idontknow();
}
class B
{
bananas();
}
我无法制作装饰器来记录这些类中函数的调用,因为它们不同。