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

时间:2018-02-26 13:20:08

标签: design-patterns adapter

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

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(){
        ...
    }
}

这仍然是适配器模式吗?

1 个答案:

答案 0 :(得分:0)

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

虽然您可能会对对象适配器支持适配器的子类的语句嗤之以鼻......

  

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

......我会说这不是模式的关键点,如果是,那么反射就可以实现它。该模式未指定 适配器必须如何组成其适配器。这只是一个实现细节(Dependency Inversion Principle对这个细节有更多的说法。)