简单工厂模式属于创建型模式又叫做静态工厂方法模式,它属于类创建型模式。
它是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
在简单工厂模式中,可以根据参数的不同返回不同类的实例。
简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

创建抽象产品类
我们创建一个抽象产品类,他有一个抽象方法用于启动做菜:
package 软件工程作业;
public abstract class Product {
/**
* 产品的抽象方法,由具体的产品类去实现
*/
public abstract void start();
}
创建具体菜品类
接着我们创建各个不同的菜A、B、C,他们都继承了他们的父类Product ,并实现了父类的start方法:
package 软件工程作业;
public class Aproduct extends Product{
@Override
public void start() {
System.out.println("开始做菜A");
}
}
package 软件工程作业;
public class Bproduct extends Product{
@Override
public void start() {
System.out.println("开始做菜B");
}
}
package 软件工程作业;
public class Cproduct extends Product{
@Override
public void start() {
System.out.println("开始做菜C");
}
}package 软件工程作业;
接下来创建一个工厂类,它提供了一个静态方法cookProduct用来做菜。你只需要传入你想做的菜名,它就会实例化相应品牌的菜对象:
package 软件工程作业;
public class Factory {
public static Product cookProduct(String type){
Product m=null;
switch (type) {
case "A":
m=new Aproduct();
break;
case "B":
m=new Bproduct();
break;
case "C":
m=new Cproduct();
break;
}
return m;
}
}
客户端调用工厂类,传入“A”生产出菜A并调用该菜的start方法:
package 软件工程作业;
public class Cookproduct {
public static void main(String[]args){
Factory.cookProduct("A").start();
}
}
终端输出结果:

通过写一个抽象类里面有一个抽象方法,别的类继承抽象类,重写抽象类中的抽象方法实现了一种多态。
利用抽象类实现。
每个不同类实现不同的抽象方法,需要什么类什么方法就加上什么类什么方法,提高了模块的内聚度,降低了模块之间的耦合度。实现了“开放-封闭”原则,这样模块更加清晰,每个部分都各司其职,分工明确,可维护性更好。
原文:https://www.cnblogs.com/zzydexiaowu/p/12003385.html