Java 简单工厂模式
需求:
Pizza 有以下几个方法
prepare() 准备食材
bake() 烘焙
cut() 切割
box() 装盒
现在有两种披萨,第一种是ApplePizza,第二种是CheesePizza。 PizzaStore有点单系统Order(pizzaType) 根据pizza type去制作对应的Pizza。
Pizza的抽象类
public abstract class Pizza {
String pizzaName = null;
public abstract void prepare();
public void bake(){
System.out.println(pizzaName+" 开始烘焙");
}
public void cut(){
System.out.println(pizzaName+" 开始切割");
}
public void box(){
System.out.println(pizzaName+" 开始打包");
}
}
具体实现类
public class ApplePizza extends Pizza{
@Override
public void prepare() {
System.out.println(pizzaName+" 准备原材料");
}
public ApplePizza(){
pizzaName = "Apple披萨";
}
}
public class CheesePizza extends Pizza{
@Override
public void prepare() {
System.out.println(pizzaName+" 准备原材料");
}
public CheesePizza(){
pizzaName = "Cheese披萨";
}
}
工厂类去实例化Pizza类
public class SimplePizzaFactory {
Pizza pizza=null;
public Pizza createPizzaInstance(String orderType){
if (orderType.equalsIgnoreCase("apple")){
pizza = new ApplePizza();
}else if (orderType.equalsIgnoreCase("cheese")){
pizza = new CheesePizza();
}
return pizza;
}
}
order系统把type传递给工厂类
public class OrderPizza {
public OrderPizza(String orderType){
SimplePizzaFactory simplePizzaFactory = new SimplePizzaFactory();
Pizza pizzaInstance = simplePizzaFactory.createPizzaInstance(orderType);
pizzaInstance.prepare();
pizzaInstance.bake();
pizzaInstance.cut();
pizzaInstance.box();
}
}
披萨店把用户需求传递给order系统
public class PizzaStore {
public static void main(String[] args) {
new OrderPizza("Apple");
new OrderPizza("Cheese");
}
}
输出结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗