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

细分尽可能简单:

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

可能有许多通用的生成器可用于实现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);
    }
}

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

最佳答案
在Java中,由于一些Java类(如MouseAdapter)的命名,我听说这称为Adapter Pattern.但是,我在Adapter Pattern上找到的信息表明它通常用于表示其他内容.

这种模式在实施中类似于Decorator Pattern,尽管意图并不完全相同.

转载注明原文:java – 抽象类实现接口和聚合同一接口的多个实现.它有一个模式(名称)吗? - 代码日志