1、工厂方法设计模式主要是核心的工厂类不在去负责产品的创建,而是将具体的创建的工作交给子类去做,而不接触具体应该哪个产品被创建以及如何创建的细节。
2、uml图如下
3、java代码
public abstract class Factory {
public Product create(String owner){
Product p = createProduct(owner);
registerProduct(p);
return p;
}
public abstract Product createProduct(String owner);
public abstract void registerProduct(Product p);
}
public class IDCard extends Product {
private String owner;
public IDCard(String owner) {
this.owner = owner;
System.out.println(owner + "的卡被建立");
}
public void use() {
System.out.println(owner + "的卡被使用");
}
}
public class IDCardFactory extends Factory{
private Vector owners = new Vector();
public Product createProduct(String owner) {
Product p = new IDCard(owner);
return p;
}
public void registerProduct(Product p) {
owners.add((IDCard)p);
}
}
public abstract class Product {
public abstract void use();
}
public class Main {
public static void main(String[] args) {
Factory factory = new IDCardFactory();
Product p = factory.create("aaa");
Product p1 = factory.create("bbb");
p.use();
p1.use();
}
}