设计模式之抽象工厂

本文探讨了设计模式中的抽象工厂模式,将其与工厂方法模式进行比较,并提供了Java代码示例来说明如何通过接口实现对象创建。通过BJFactory和OrderPizza类的实例,展示了如何使用抽象工厂模式创建不同类型的Pizza。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计模式之抽象工厂模式:简单说一下我的理解,其实抽象工厂模式跟工厂方法模式还是比较相似的,工厂方法模式其实简单来说,就是将通过抽象类提供的抽象方法,由具体子类去继承它来完成对象的创建,而抽象工厂则是通过接口的形式由子类去实现接口来完成对象的创建

话不多说,直接上代码:

//一个抽象工厂模式的接口
public interface AbsFactory {
// 提供生成对象的方法 来由不同的子类分别实现
public Pizza createPizza(String orderType);
}

// 北京口味的pizza
public class BJFactory implements AbsFactory{

private Pizza pizza;

public Pizza createPizza(String orderType){
if(orderType.equals(“cheese”)){
pizza = new BJCheesePizza();
}else if(orderType.equals(“other”)){
pizza = new BJOtherPizza();
}else {
//可扩展的代码,如果有新增可以在此修改
}
return pizza;
}
}

public class OrderPizza(){
private AbsFactory factory;

public OrderPizza(AbsFactory absFactory){
setFactory(absFactory);
}

public void setFactory(AbsFactory absFactory){
this.factory = absFactory
String orderType = “”;//披萨的类别,可以由其他方法传入
Pizza pizza = this.factory.createPizza(orderType);
if(pizza!=null){
//调用pizza的方法
}else{
//可以抛出一个异常或者给出提示
}
}

}

public class test{
main(){
//假如想要北京的pizza
OrderPizza bjpizza = new OrderPizza(new BJFactory());
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值