23种设计模式---工厂模式(整理自用)

工厂模式

一、简单工厂模式

例:一个水果工厂(Factory)提供苹果(Apple)和草莓(Strawberry),订单可选择水果类(Fruit),即工厂提供苹果还是草莓。代码如下:
工厂

public class Factory {
   
    Fruit createFruit(String fruitType){
   
        if(fruitType.equals("strawberry")){
   
            return new Strawberry();
        }else if(fruitType.equals("apple")){
   
            return new Apple();
        }
        return null;
    }
}

水果类

public class Fruit {
   

}

苹果

public class Apple extends Fruit {
   
    Apple(){
   
        System.out.println("apples!!!");
    }
}

草莓

public class Strawberry extends Fruit {
   
    Strawberry(){
   
        System.out.println("strawberries!!!");
    }
}

订单
可选择工厂提供苹果或草莓

public class OrderParent {
   
    public static void main(String[] args) {
   
        Factory factory = new Factory();
        Fruit fruit = factory.createFruit("strawberry");
    }
}

二、工厂方法模式

上面简单工厂模式,是一个工厂提供苹果或草莓,但如果有两个不同的工厂,分别是中国工厂和泰国工厂生产苹果和草莓,如果在原有工厂上修改如下:

public class Factory {
   
    Fruit createFruit(String country,String fruitType){
   
        if(country.equals("china")) {
   
        System.out.print("中国工厂提供:");
            if(fruitType.equals("strawberry")){
   
            return new Strawberry();
        }else if(fruitType.equals("apple")){
   
            return new Apple();
        }
        }else if(country.equals("thailand"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值