`
litingwen624
  • 浏览: 9324 次
  • 来自: 太行山脚,汾水之滨
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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太像了,所以简单的工厂模式也很相似,只是我在琢磨闭包和方法一定有不同适应的环境,在不同情况下我们选择合适的方式
分享到:
评论

相关推荐

    抽象工厂模式的简单实现

    在"抽象工厂模式的简单实现"中,我们可以看到一些常见的Gradle项目文件。Gradle是一个基于Groovy和Java的构建自动化工具,它允许开发者以声明式的方式定义构建过程。以下是相关知识点的详细说明: 1. **抽象工厂...

    JVM 动态执行Groovy脚本的方法

    本文将详细讲解如何使用JVM动态执行Groovy脚本的方法,主要包括利用JShell执行代码、调试模式下动态执行代码以及利用javax.script包执行Groovy脚本。以下是对各知识点的详细说明。 1. 利用JShell执行代码 Java 9 ...

    groovy 1.5-wiki-snapshot

    Groovy的文档中详细介绍了如何在Groovy中实现各种设计模式,如工厂模式、适配器模式、职责链模式等。这些设计模式有助于解决常见的软件设计问题,如接口不匹配、对象管理复杂、系统难以扩展等。通过学习和应用这些...

    Scala与Clojure函数式编程模式:Java虚拟机高效编程1

    书中可能会讨论如何用函数式编程模式替换面向对象编程中的常见模式,如工厂方法、单例、观察者模式等。例如,使用函数式编程可以简化创建对象的过程,通过高阶函数实现单例模式,以及利用反应式编程替代事件驱动。 ...

    sourcecode

    8. **设计模式的应用**:自动生成代码可以帮助实现设计模式,比如工厂模式、单例模式等,从而保持代码结构的整洁和可维护性。 9. **测试代码生成**:Mockito等测试框架可以生成测试桩(mock objects),帮助编写...

    CodingPattern.zip_行业发展研究_Java_

    在" CodingPattern.java "这个源文件中,可能包含了如单例模式、工厂模式、观察者模式等经典设计模式的实现。这些模式不仅提高了代码的可读性和可维护性,还能帮助开发者更好地组织和管理代码,提升软件的扩展性和...

    Spring框架文档 - 核心技术部分 中英双语版 第一部分.pdf

    - **Bean实例化**:有多种方式实例化bean,包括使用构造函数、静态工厂方法和实例工厂方法。 3. **面向切面编程(AOP)**:Spring的AOP允许开发者定义“方面”,这些方面是跨越多个对象的横切关注点,如日志、...

    spring官方文档

    - **核心容器**:这部分包含了Spring框架的基本组成部分,包括BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IoC)来管理应用中的对象。此外,还提供了配置元数据的多种格式,如XML、Java注解或Java...

    JAVA上百实例源码以及开源项目源代码

    简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 ...

    javaSE代码实例

    3.1 不简单的算术运算符 22 3.1.1 “+”运算符 22 3.1.2 “-”运算符 24 3.1.3 “*”运算符 25 3.1.4 “/”运算符 25 3.1.5 “%”运算符 26 3.2 自增自减运算 27 3.3 关系运算 28 3.3.1 等于/不...

    spring-framework-3.1.0.M1-with-docs

    4. 集成了Groovy脚本支持:开发者可以通过Groovy来编写配置,增加了灵活性,降低了复杂性。 5. AOP改进:对通知(advisors)和切入点(pointcuts)的处理更加高效,同时增强了对环绕通知的支持。 6. 数据访问增强...

    spring-framework-reference-4.3.19.pdf

    - **依赖注入与控制反转**:Spring的核心功能之一是依赖注入(DI),这是一种设计模式,用于实现松耦合的应用程序组件。控制反转(IoC)容器负责管理对象的生命周期和配置,从而实现了依赖注入。 - **框架模块**: ...

    java架构图示

    - **AOP**: 通过代理模式实现面向切面编程。 - **DAO**: 数据访问对象模式的实现,简化了JDBC编程。 - **Transaction**: 用于管理事务。 - **Web**: 包含了Web开发所需的特定上下文和MVC框架。 ### 2. Hibernate...

    spring 官方参考文档

    - **依赖注入与控制反转**:依赖注入是一种设计模式,通过将对象的依赖关系外部化,实现组件之间的解耦。在Spring框架中,依赖注入主要通过XML配置文件或注解来实现。控制反转是指将程序的控制权交给一个容器,而...

    scala的操作笔记

    对象可以包含方法和字段,通常用来实现工厂模式或作为全局工具类。 - **继承**:Scala支持类之间的继承关系。子类可以通过`extends`关键字继承父类的属性和方法。 - **特质**:Scala中的特质类似于Java中的接口,但...

    pullparser的jar包.rar

    1. **获取Parser实例**:使用`XmlPullParserFactory`工厂类创建`XmlPullParser`实例,设置解析模式和属性。 2. **设置输入源**:调用`setInput()`方法,传入XML数据的输入流或字符序列。 3. **遍历事件**:进入一...

    01.Spring框架简介_spring_spring发展历程_

    2009年,Spring 3.0发布,全面支持Java EE 6,增加了对RESTful服务、Groovy的支持,并引入了Spring Expression Language (SpEL)。 2014年的Spring 4.0带来了对Java 8的全面支持,改进了对WebSocket和反应式编程的...

    Apress.Pro.Spring.4th.Edition

    - **Groovy集成**:Spring支持使用Groovy等脚本语言,以提供更灵活的应用程序扩展能力。 - **动态脚本**:Spring还支持动态脚本的执行,可用于运行时动态配置等场景。 #### 15. 应用监控 - **监控工具**:Spring...

    spring-framework-reference4.3.1

    - **核心容器(Core Container)**:包含Spring框架的基本组成部分,如BeanFactory,它是工厂模式的实现,用于创建和管理bean对象。 - **面向切面编程(AOP and Instrumentation)**:提供了面向切面编程的支持,可以...

Global site tag (gtag.js) - Google Analytics