请您先登录,才能继续操作
浏览 2568 次
锁定老帖子 主题:groovy简单工厂模式实现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-16
(一)定义接口: 这里我使用闭包写了一个输出,其他实现类是不用实现闭包的 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太像了,所以简单的工厂模式也很相似,只是我在琢磨闭包和方法一定有不同适应的环境,在不同情况下我们选择合适的方式 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |