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;
}
}
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下