工厂方法模式里面必须要知道的事情
工厂方法模式的UML:
工厂方法里面最关键的地方就是:建立对象实例交给子类去具体实现。就是一个模版方法模式的扩展(可以去看看模版方法里面的事情)。
关键代码:
//Factory的实现
public abstract class Factory {
public final Product create(String owner){
Product p=createProduct(owner);
return p;
}
public abstract Product createProduct(String owner);
}
//Product的实现
public abstract class Product {
public abstract void use();
}
//IDProduct 的实现
public class IDProduct extends Product {
@Override
public void use() {
System.out.println("使用"+owner+"的卡");
}
}
//IDFactory的实现,子类具体实现父类的抽象方法
public class IDFactory extends Factory{
@Override
public Product createProduct(String owner) {
// TODO 自动生成的方法存根
return new IDCard(owner);
}
}
这个时候我们就可以看到,我们是用子类IDFactory来具体实现的创建实例。慢慢的模式里面就有一些组合开始混用达到更好的解耦方法。