摸鱼现场——工厂设计模式


设计原则

提供生产工厂类

简单工厂

代码

/**
* 简单工厂模式
* 一家“简单面馆”(简单工厂类)
*/
public class SimpleNoodlesFactory {

   public static final int TYPE_LZ = 1;//兰州拉面
   public static final int TYPE_PM = 2;//泡面
   public static final int TYPE_GK = 3;//热干面

   /**
    * 如果生产对象的方法是static的,这种简单工厂也叫做静态工厂
    * 如果生产对象的方法不是static的,这种简单工厂也叫做实例工厂
    * @param type
    * @return
    */
   public static INoodles createNoodles(int type) {
       switch (type) {
           case 1:
               return new LzNoodles();
           case 2:
               return new PaoNoodles();
           case 3:
               return new ReganNoodles();
           default:
               return new LzNoodles();
       }
   }
}


描述

  如果生产对象的方法是static的,这种简单工厂也叫做静态工厂
  如果生产对象的方法不是static的,这种简单工厂也叫做实例工厂

方法工厂

代码

/**
* 工厂方法模式
*/
public interface INoodlesFactory {
    INoodles createNoodles();
}


public class LzINoodlesFactory implements INoodlesFactory {
   @Override
   public INoodles createNoodles() {
       return new LzNoodles();
   }
}

描述

工厂接口化

应用场景

spring IOC 控制反转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值