弄清楚这个设计模式的想要表达的含义,工厂设计模式,举个例子:包饺子。
工厂设计模式专注的是饺子用的是什么馅,猪肉的,白菜的,猪肉白菜的,就是比较具体化,我们告诉老板,来一份猪肉馅的饺子,老板就会给我们煮猪肉馅的,有条件的输入和具体内容的产出,
这个就是工厂设计模式,下面上代码瞧一瞧。
// 1. 抽象产品
interface JiaoZi {
void pay(double amount);
}
// 2. 具体产品
class ZhuRou implements JiaoZi {
@Override public void pay() { System.out.println("猪肉馅"); }
}
class BaiCai implements JiaoZi {
@Override public void pay() { System.out.println("白菜馅"); }
}
// 3. 工厂类
class JiaoZiGuan {
public static JiaoZi createJiaoZi(String type) {
return switch (type.toLowerCase()) {
case "zhurou" -> new ZhuRou();
case "baicai" -> new BaiCai();
default -> throw new IllegalArgumentException("抱歉,该店没有这种口味的饺子");
};
}
}
// 使用
JiaoZi jiaozi = JiaoZiGuan.createJiaoZi("zhurou");
jiaozi.pay();
如果在日常开发过程中,遇到了有类似场景的地方,就是功能保持一致(都是饺子),但是具体功能的实现不用管(饺子馅),
完全依靠外部定夺(顾客说的,猪肉的),那么你不妨试试,简单工厂模式,最起码能让代码更加优雅一点点,只是发表一点自己的感想,有问题欢迎大家指出。