一、工厂方法(FactoryMethod)
FactoryMethod模式是设计模式中应用最为广泛的模式,在面向对象的编程中,对象的创建工作非常简单,对象的创建时机却很重要。FactoryMethod解决的就是这个问题,它通过面线对象的手法,将所要创建的具体对象的创建工作延迟到了子类,从而提供了一种扩展的策略,较好的解决了这种紧耦合的关系。
实例:

具体实现:1.选创建一个宝马车的接口
package day15;
/**
* 宝马车的产品接口
* */
public interface BWM {
//产品的信息介绍
//车的发动方式等等
void showInfo();
}
/**
* 构建具体的车的类
* */
class BWM3 implements BWM{
public void showInfo() {
// TODO Auto-generated method stub
System.out.println("这个是宝马三系车");
}
}
class BWM5 implements BWM{
public void showInfo() {
// TODO Auto-generated method stub
System.out.println("这个是宝马五系车");
}
}
class BWM7 implements BWM{
public void showInfo() {
// TODO Auto-generated method stub
System.out.println("这个是宝马七系车");
}
}
2.再创建一个宝马车生产工厂的接口
package day15;
/**
* 这是汽车生产工厂接口
* */
public interface BWMFactory {
BWM productBWM();
}
/**
* 实现具体车型生产的工厂
* 通过工厂把new对象隔离,通过产品的接口可以接受不同实际产品的实现类,实例的类名的改变不影响其他合作开发人员的编程
* */
class BWM3Factory implements BWMFactory{
public BWM productBWM() {
// TODO Auto-generated method stub
System.out.println("生产3系宝马车");
System.out.println("改造3系宝马车,定名为3i");
return new BWM3();
}
}
class BWM5Factory implements BWMFactory{
public BWM productBWM() {
// TODO Auto-generated method stub
System.out.println("生产5系宝马车");
return new BWM5();
}
}
class BWM7Factory implements BWMFactory{
public BWM productBWM() {
// TODO Auto-generated method stub
System.out.println("生产7系宝马车");
return new BWM7();
}
}
3.通过调用宝马车生产工厂的接口来实现
package day15;
/**
* 开发人员B的工作,不受开发人员A改动代码的影响
* */
public class Test2 {
public static void main(String[] args){
BWM b3 = new BWM3Factory().productBWM();
b3.showInfo();
BWM b5 = new BWM5Factory().productBWM();
b5.showInfo();
BWM b7 = new BWM7Factory().productBWM();
b7.showInfo();
}
}
打印结果为:

来源:https://www.cnblogs.com/su-peng/p/12537462.html