设计模式:在不同家庭的对象上应用行为

时间:2014-02-25 07:28:35

标签: java design-patterns

我有一组来自第三方库的类,我无法访问源代码。我需要使用设计模式在这些对象上添加一些常见的行为。如何将装饰器访客模式应用于这些对象?

这些对象没有共同的基类。这些是普通对象或具有不常见的接口。我无法为这些类添加公共接口,因为这些类不属于我的项目。

如何在不检查单个方法中的'instance of'的情况下为这些类添加常见行为。

1 个答案:

答案 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 
    }
}

enter image description here

通过这种方式,您可以将那些没有通用接口的类型调整为适合您的接口层次结构。您还可以添加要添加到此适配器的其他功能。或者您可以继续使用装饰器YourTypeAdapter,因为现在您可以使用界面YourAdapterInterface

参考文献:   - OODesign Adapter pattern