简介:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
总结:工厂模式->一种工厂,多种对象;抽象工厂模式->一种抽象工厂,多种工厂,每个工厂可以生产多种对象。
代码示例:
interface Animals {
void name();
}
class Cat implements Animals {
@Override
public void name() {
System.out.println("this is a cat");
}
}
abstract class AbstractFactory {
abstract public Animals getAnimals(String name);
abstract public Object getObject();
}
class AnimalsFactory extends AbstractFactory {
@Override
public Animals getAnimals(String name) {
if(name.equalsIgnoreCase("cat")) {
return new Cat();
} else {
return null;
}
}
@Override
public Object getObject() {
return null;
}
}
class OthersFactory extends AbstractFactory {
@Override
public Animals getAnimals(String name) {
return null;
}
@Override
public Object getObject() {
return null;
}
}
public class Abstract_Factory {
//工厂生成器:生产具体的工厂
public static AbstractFactory getFactory(String factoryName) {
if(factoryName.equalsIgnoreCase("animals")) {
return new AnimalsFactory();
} else if (factoryName.equalsIgnoreCase("others")) {
return new OthersFactory();
} else {
return null;
}
}
public static void main(String[] args) {
//生产动物工厂
AbstractFactory animalsFactory = getFactory("animals");
Animals cat = animalsFactory.getAnimals("cat");
cat.name();
}
}