工厂方法模式(FactoryMrthod)
通常由应用程序直接使用new创建对象,为了将对象的创建和使用相分离,采用工厂模式,即应用程序将对象的创建及初始化职责交给工厂对象
一般情况下,应用程序有自己的工厂对象来创建Bean,如果将应用程序自己的工厂对象交给Spring管理,那么Spring管理的就不是普通的Bean,而是工厂Bean
工厂模式是一个创建型的模式,对于调用者来说隐藏了复杂的逻辑处理过程,调用者只关心执行结果
对于工厂来说要对结果负责,保证生产出符合规范的产品
代码实现
public class MengniuFactory implements Factory {
@Override
public Milk getMilk() {
return new Mengniu();
}
@Override
public Milk getYili() {
return new Yili();
}
@Override
public Milk getTelunsu() {
return new Telunsu();
}
@Override
public Milk getSanlu() {
return new Sanlu();
}
}
public class MilkFactory extends AbstractFactory {
@Override
public Milk getMengniu() {
return new Mengniu();
}
@Override
public Milk getYili() {
return new Yili();
}
@Override
public Milk getTelunsu() {
return new Telunsu();
}
@Override
public Milk getSanlu() {
return new Sanlu();
}
}
public class AbstractFactoryTest {
public static void main(String[] args) {
MilkFactory factory = new MilkFactory();
//对于用户而言,更加简单了
//用户只有选择的权利了,保证了程序的健壮性
System.out.println(factory.getSanlu());
}
}