groovy简单工厂模式实现

groovy灵活的语法特征,让java程序员在实践中更能享受编程的简便,闲时做个一个工厂方法的例子如下:
(一)定义接口:
这里我使用闭包写了一个输出,其他实现类是不用实现闭包的
package designpattern;


interface Iproduce {
   
  def welcome={msg->println msg};
  void create();
  void delete();
}
(二) 一个简单实现类
package designpattern;

class AppleProduce  implements Iproduce {
    void create(){
        println '制造苹果'   
    }
    void delete(){
        println '删除苹果'
    }
}
(三)第二个简单实现类
package designpattern;


class PearProduce implements Iproduce {
   
    void create(){
        println  '制造梨子'
    }
    void delete(){
        println '删除梨子'
    }
}
(四)工厂类:用单体模式结合工厂方法
package designpattern;


class   ProduceFactory {

    static  ProduceFactory pf;
    Iproduce produce;
  //工厂实例
  static ProduceFactory getInstance(){
    if(pf==null){
        return new ProduceFactory();
    }
    else return pf;
  }
 
  //工厂方法
  Iproduce createProduce(def type){
      if(type=='apple'){
          return new AppleProduce();
      }
      if(type=='pear'){
          return new PearProduce();
      }
  }
}
(五) 简单测试类,使用接口中定义闭包实现日志记录
package designpattern;


class TestAppleProduce extends GroovyTestCase {
   
    def produce;
   
    void setUp(){
        produce=new ProduceFactory().createProduce('apple');
    }
   
    void testCreate() {
        produce.create();
        produce.welcome.call('apple');
    }
    void testDelete() {
        produce.delete();
        produce.welcome.call('apple');
    }
}

groovy 和Java太像了,所以简单的工厂模式也很相似,只是我在琢磨闭包和方法一定有不同适应的环境,在不同情况下我们选择合适的方式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值