Design patterns 抽象工厂
例子
以下设计模式被归类为创建模式。
抽象工厂用于提供用于创建相关对象系列的接口,无需指定具体类,并可用于隐藏特定于平台的类。
interface Tool {
void use();
}
interface ToolFactory {
Tool create();
}
class GardenTool implements Tool {
@Override
public void use() {
//做点什么...
}
}
class GardenToolFactory implements ToolFactory {
@Override
public Tool create() {
//也许需要额外的逻辑来设置...
return new GardenTool();
}
}
class FarmTool implements Tool {
@Override
public void use() {
//做点什么...
}
}
class FarmToolFactory implements ToolFactory {
@Override
public Tool create() {
//也许需要额外的逻辑来设置...
return new FarmTool();
}
}然后将使用某种供应商/生产商,这些供应商/生产商将传递信息,使其能够返回正确类型的工厂实现:
public final class FactorySupplier {
//它可以为您提供的支持类型...
public enum Type {
FARM, GARDEN
};
private FactorySupplier() throws IllegalAccessException {
throw new IllegalAccessException("Cannot be instantiated");
}
public static ToolFactory getFactory(Type type) {
ToolFactory factory = null;
switch (type) {
case FARM:
factory = new FarmToolFactory();
break;
case GARDEN:
factory = new GardenToolFactory();
break;
} //可能会添加一个默认情况来处理传入null的人
return factory;
}
}
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短