四:工厂模式


  在往下看之前,咱们来先了解下工厂的定义:工厂又称制造厂,制造业就是生产,创建的意思。咱们
  来想想,java里面有什么东西是表示创建的,一想应该就知道是new吧。那我们一般会new什么东西
  哩,比如new一个实例对象,new一个接口实现类对吧。这其实都是对象类。所以工厂模式,就是对类
  的创建进行封装的。
  1.简单工厂模式
    a.上面对工厂模式做了一个简单的定义,那么咱们再来聊下,为什么一个类的创建,会专门用一种
      模式来搞定呢?因为在我们直接对一个类进行new创建的时候,在某种程度上,在对这个类使用
      的时候,就会强依赖这个类,如果在后期需要修改这个类的时候,代码中在对这个类的创建所有
      地方都需要进行修改。
    b.如何实现一个简单工厂模式
      简单工厂模式的核心思想就是:通过工厂类中不同的方法,创建不同的实现类
      (1)首先我们要创建一个接口,创建不同的类实现这个接口(这不就是创建接口的套路么)
      (2)再创建一个工厂类,类里面封装不同的方法,返回不同的接口实现类(看到这里,spring里
         面通过注解装配接口和实现类不就是类似这种套路么)
      (3)最后使用这个简单工厂模式的时候,如下,即可

        Product productA = ProductFactory.createA();
        productA.execute();
        Product productB = ProductFactory.createB();
        productB.execute();


    c.比如,我现在要做个苹果派,那我就可以创建一个PieFactory(派工厂),通过一个
      createApple()方法,创建一个苹果派出来,如果要做一个橘子派,那我就可以通过
      createOrange()方法,创建一个橘子派出来。
  2.工厂方法模式
    a.工厂方法模式其实就是简单工厂模式和模板方法模式的结合体,因为有些类里面可能是有一部
      分公共的创建逻辑的
    b.具体实现就是,在完成模板方法模式后,再套一层工厂类,也就是把之前的new AClass();动
      作,变成TemplateClass.createA();即可
    c.比如这个时候,创建苹果派和创建橘子派,都有一个公共逻辑,比如要将材料放入烤箱中,只是
      原材料不一样,这个时候,就可以通过模板模式将公共逻辑抽出来
  3.抽象工厂模式
    a.抽象工厂类其实就是对不同的简单工厂类,进行组件化,有不同的组件组合模式
    b.比如还是拿上面例子,上面的派都是单一口味的派,不同口味的派,有不同的工厂。一个派其实
      是可以有多种双拼口味的,比如我现在想要苹果橘子派,那么我需要修改上面逻辑,创建不同
      的派工厂:AppleFactory和OrangeFactory。将之前的PieFactory工厂类,改成接口。将
      不同的组合封装成PieFactory接口中的方法
     

 public interface  PieFactory{
        public static Pie createAppleAndOrangePie(String nameA,String nameB){
          Foot footApple = AppleFactory.createApple(nameA);
          Foot footOrange = OrangeFactory.createOrange(nameB);
          return new PieFruits(footApple,footOrange);
        }
      }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值