抽象类实现接口和聚合同一接口的多个实现.它有一个模式(名称)吗?

Joh*_*nes 5 java oop design-patterns

细分尽可能简单:

是否存在以下场景的设计模式(名称)?

可能有许多通用的生成器可用于实现IGenerator接口,但也有一些依赖于国家的接口(扩展GeneratorBase).后者可以封装依赖于国家/地区的生成器以及与国家无关的生成器,具体取决于要保存实现的"SomeType"的类型.Mehtod init()旨在覆盖包含可用生成器的注册/映射过程.

抽象类GeneratorBase提供了为特定类型的"SomyType"关联和查找生成器的功能.同时,可以存在IGenerator实现,它们既不知道"SomeType"也不知道国家.

旁注:所有可用(不可用!)生成器都保存在一个单独的注册表类中,该类负责查找正确的IGenerator实现.

客户端/用户获得的唯一接口是IGenerator接口.

public interface IGenerator
{
    public String generate(SomeType s);
}

public abstract class GeneratorBase implements IGenerator
{
    private Map generators;
    protected String country;

    public GeneratorBase(String country){
        generators = new HashMap();
        this.country = country;
        init();
    }

    public abstract void init();

    public String generate(SomeType s)
    {
        Generator gen = (Generator) generators.get(new Integer(s.getObjectType()));
        ...
        return gen.generate(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我遇到了适配器模式,桥接模式和装饰模式.它们都不适合这种设置.最接近的可能是适配器或桥接模式,但我既不调整东西,也不桥接(抽象类实现与实现者完全相同的接口)

Ale*_*ing 1

在 Java 中,由于某些 Java(例如MouseAdapter. 然而,我在适配器模式上找到的信息表明它通常用于表示其他含义。

此模式在实现上与装饰模式类似,但意图并不完全相同。