小胖子的Java设计模式-工厂模式

工厂设计模式(Factory Pattern)

背景介绍:

在小胖子的程序世界里,披萨店的生意愈发兴隆,但随着顾客越来越多,小胖子发现自己难以应付每个人的口味需求。为了解决这个问题,他决定引入一个新的角色,外号叫做猥琐的披萨顾问。猥琐自称是披萨界的行家里手,对各种各样的披萨口味了如指掌。

设计模式应用:
简单工厂模式

小胖子决定使用简单工厂模式,让猥琐负责根据顾客的口味需求制作不同种类的披萨。这样,小胖子只需要告诉猥琐他想要什么口味的披萨,猥琐就会为他制作出完美的披萨。

代码示例:
// 披萨接口
public interface Pizza {
    String prepare();
}

// 芝士披萨类
public class CheesePizza implements Pizza {
    @Override
    public String prepare() {
        return "制作芝士披萨";
    }
}

// 海鲜披萨类
public class SeafoodPizza implements Pizza {
    @Override
    public String prepare() {
        return "制作海鲜披萨";
    }
}

// 简单工厂类
public class SimplePizzaFactory {
    public Pizza createPizza(String type) {
        if ("cheese".equals(type)) {
            return new CheesePizza();
        } else if ("seafood".equals(type)) {
            return new SeafoodPizza();
        } else {
            throw new IllegalArgumentException("未知类型的披萨");
        }
    }
}

// 客户端
public class PizzaClient {
    public static void main(String[] args) {
        SimplePizzaFactory pizzaFactory = new SimplePizzaFactory();
        Pizza pizza = pizzaFactory.createPizza("cheese");
        System.out.println(pizza.prepare());
    }
}
抽象工厂模式

为了更好地满足不同顾客的需求,小胖子决定引入抽象工厂模式。他请猥琐带着他的助手涛涛,成立了一个“创意披萨工坊”。猥琐负责设计各种独特的披萨口味,而涛涛负责制作。

代码示例:
// 抽象工厂接口
public interface PizzaFactory {
    Pizza createPizza();
}

// 芝士披萨工厂
public class CheesePizzaFactory implements PizzaFactory {
    @Override
    public Pizza createPizza() {
        return new CheesePizza();
    }
}

// 海鲜披萨工厂
public class SeafoodPizzaFactory implements PizzaFactory {
    @Override
    public Pizza createPizza() {
        return new SeafoodPizza();
    }
}

// 客户端
public class PizzaClient {
    public static void main(String[] args) {
        PizzaFactory cheesePizzaFactory = new CheesePizzaFactory();
        Pizza cheesePizza = cheesePizzaFactory.createPizza();
        System.out.println(cheesePizza.prepare());

        PizzaFactory seafoodPizzaFactory = new SeafoodPizzaFactory();
        Pizza seafoodPizza = seafoodPizzaFactory.createPizza();
        System.out.println(seafoodPizza.prepare());
    }
}

在这个例子中,小胖子通过引入猥琐这个披萨顾问,成功地将工厂模式应用到了披萨店的经营中。猥琐的出现让小胖子能够更好地满足顾客的需求,提供更多口味的披萨。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值