gpt4 book ai didi

java - 实现接口(interface)并聚契约(Contract)一接口(interface)的多个实现的抽象类。有它的模式(名称)吗?

转载 作者:搜寻专家 更新时间:2023-10-31 20:34:24 26 4
gpt4 key购买 nike

尽可能简单地分解:

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

可能有许多实现 IGenerator 接口(interface)的通用生成器,但也有一些国家相关的生成器(扩展 GeneratorBase)。后者可以封装依赖于国家/地区的生成器以及独立于国家/地区的生成器,具体取决于要为其实现的“SomeType”的类型。 Mehtod init() 旨在被覆盖,包含可用生成器的注册/映射过程。

抽象类 GeneratorBase 提供了关联和查找特定类型“SomyType”的生成器的功能。并行地可以存在既不知道“SomeType”也不知道国家的 IGenerator 实现。

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

客户端/用户获得的唯一接口(interface)是 IGenerator 接口(interface)。

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);
}
}

编辑:我遇到过适配器模式、桥接模式和装饰器模式。没有一个真正适合这个设置。最接近的可能是 Adapter 或 Bridge Pattern,但我既没有适应某些东西,也没有桥接(抽象类实现与实现者完全相同的接口(interface))

最佳答案

在 Java 中,由于某些 Java 类(如 MouseAdapter)的命名,我听说这称为 Adapter Pattern。但是,我在 Adapter Pattern 上找到的信息表示它通常用于表示其他含义。

这个模式在实现上类似于 Decorator Pattern ,虽然意图并不完全相同。

关于java - 实现接口(interface)并聚契约(Contract)一接口(interface)的多个实现的抽象类。有它的模式(名称)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22486413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com