factory pattern 工厂模式

工厂模式分为:简单工厂、工厂方法、抽象工厂

Simple Factory:感觉所有的产品都在一个类里面生产出来


class FruitFactory {

  public Apple makeApple() {
    // Code for creating an Apple here.
  }

  public Orange makeOrange() {
    // Code for creating an orange here.
  }

}

Factory Method:感觉所有的实现都在子类中实现,而子类都会实现父类中共有的方法,从而生产出各种产品


abstract class FruitPicker {

  protected abstract Fruit makeFruit();

  public void pickFruit() {
    private final Fruit f = makeFruit(); // The fruit we will work on..
    <bla bla bla>
  }
}

class OrangePicker extends FruitPicker {

  @Override
  protected Fruit makeFruit() {
    return new Orange();
  }
}

Abstract Factory:感觉是对抽象方法的升级,就拿开汽车来说:工厂方法可能就会抽出一个开汽车的方法让子类各自去实现具体是开宝马还是奔驰;如果是抽象方法可能就会抽的更具体一些,抽出一个生产汽车的方法,同时也抽出一个开汽车的方法,确保生产汽车和开汽车同时构建,这样就不会开错车。


interface PlantFactory {

  Plant makePlant();

  Picker makePicker(); 

}

public class ApplePicker implements PlantFactory {
  Plant makePlant() {
    return new Apple();
  }

  Picker makePicker() {
    return new ApplePicker();
  }
}

public class OrangePicker implements PlantFactory {
  Plant makePlant() {
    return new Orange();
  }

  Picker makePicker() {
    return new OrangePicker();
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值