设计模式之--工厂模式

啥是工厂模式

啥是工厂模式?按名字上理解就是,弄一个工厂,然后生产各式各样的产品;

那么这里的产品,就是指对象,我们建一个工厂,工厂根据我们传不同的参数给我们返回不同的对象,那么我们就不需要去手动建对象(那么也不需要去记那些长长的类名),之间传对于的参数给工厂,工厂就会返回对于的对象给我们;

上代码

第一步先建一个接口(理解为产品类型)

public interface Fruit{
   void draw();
}

第二步创建接口的实现类(理解为各种各样的产品)

public class Apple implements Fruit{
 
   @Override
   public void draw() {
      System.out.println("这里是苹果的draw方法");
   }
}
public class Banana implements Fruit{
 
   @Override
   public void draw() {
      System.out.println("这里是香蕉的draw方法");
   }
}
public class Strawberry implements Fruit{
 
   @Override
   public void draw() {
      System.out.println("这里是草莓的draw方法");
   }
}
public class Durian implements Fruit{
 
   @Override
   public void draw() {
      System.out.println("这里是榴莲的draw方法");
   }
}

第三步则是创建一个工厂去生产这些产品

public class FruitFactory {
    
   //使用 getFruit方法获取形状类型的对象
   public Fruit getFruit(String fruitType){
   //当然在方法里面也可以定义其他不同的更加复杂的业务逻辑,然后返回对于的对象
      if(fruitType== null){
         return null;
      }        
      if(fruitType.equals("Apple")){
         return new Apple();
      } else if(fruitType.equals("Banana")){
         return new Banana();
      } else if(fruitType.equals("Strawberry")){
         return new Strawberry();
      } else if(fruitType.equals("Durian")){
         return new Durian();
      }
      return null;
   }
}

到这里,工厂就已经建好了,那么我们就可以使用了:

public class FactoryDemo {
 
   public static void main(String[] args) {
   	  //建一个工厂对象
      FruitFactory fruitFactory = new FruitFactory ();
 	  //调用工厂的getFruit方法
 	  //这里获取的就是一个榴莲
 	  Fruit fruit = fruitFactory.getFruit("Durian");
      fruit.draw();//这里就会执行榴莲类Durian的draw方法
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值