我有一组来自第三方库的类,我无法访问源代码。我需要使用设计模式在这些对象上添加一些常见的行为。如何将装饰器或访客模式应用于这些对象?
这些对象没有共同的基类。这些是普通对象或具有不常见的接口。我无法为这些类添加公共接口,因为这些类不属于我的项目。
如何在不检查单个方法中的'instance of'的情况下为这些类添加常见行为。
答案 0 :(得分:4)
要使用Decorator,您需要一些定义良好的界面。所以第一个任务是找到一个接口。由于第三方类没有接口,适配器模式来拯救。您可以定义自己的界面,并使第三方类适应您需要遵守的界面。
class YourTypeAdapter implements YourAdapterInterface{
private Type instance; //need to adapt this as no interface present
public void interfaceMethod(){
instance.someTypeSpecificMethod();
//perform extra steps here
}
}
通过这种方式,您可以将那些没有通用接口的类型调整为适合您的接口层次结构。您还可以添加要添加到此适配器的其他功能。或者您可以继续使用装饰器YourTypeAdapter
,因为现在您可以使用界面YourAdapterInterface
。
参考文献: - OODesign Adapter pattern