不将类对象作为参数传递的适配器模式

米洛拉德

我有一个非常简单的问题。互联网上有适配器模式的例子,在每个例子中,适配器类都可以获取需要作为参数进行调整的类的对象。像这样的东西:

class Adapter {
    private SomeClass someClass;

    public Adapter(SomeCLass someClass){
        this.someClass = someClass;
    }

    public adaptMethod(){
        ...
    }
}

如果我做这样的事情:

class Adapter {
    private SomeClass someClass;

    public Adapter(){
        this.someClass = new SomeClass();
    }

    public adaptMethod(){
        ...
    }
}

这仍然是适配器模式吗?

jaco0646

是的,这仍然是一个适配器。它匹配来自 GoF 的描述和 UML,特别是对象适配器模式。

虽然您可能会对对象适配器支持被适配者的子类这一说法提出异议...

对象适配器允许单个适配器与许多 Adaptee 一起工作——即 Adaptee 本身及其所有子类。

...我会说这不是模式的关键点,如果是,那么反射可以实现它。该模式没有指定适配器必须如何组成它的被适配者。这只是一个实现细节(依赖倒置原则会对这个细节有更多的说法)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章