Java 工厂方法模式

在工厂对象上调用创建方法,生成接口的某个实现的对象

通过这种方式,接口与实现分离

  • 方法接口

    /**

    • 方法接口 */ public interface Service { void method1(); void method2(); }
  • 工厂方法接口

    /**

    • 工厂方法接口 */ public interface ServiceFactory { Service getService(); }
  • 方法实现

    /**

    • 实现类1 */ public class Impl1 implements Service { public void method1(){System.out.println("Impl1 method1");} public void method2(){System.out.println("Impl1 method2");} }

    /**

    • 实现类2 */ public class Impl2 implements Service{ public void method1(){System.out.println("Impl2 method1");} public void method2(){System.out.println("Impl2 method2");} }
  • 工厂方法实现

    public class ImplFactory1 implements ServiceFactory { public Service getService(){ return new Impl1(); } }

    public class ImplFactory2 implements ServiceFactory{ public Service getService(){ return new Impl2(); } }

  • 测试

    public class Test { public static void main(String[] args){ ServiceFactory sf1 = new ImplFactory1(); Service s1 = sf1.getService(); s1.method1(); s1.method2();

    1 ServiceFactory sf2 = new ImplFactory2(); 2 Service s2 = sf2.getService(); 3 s2.method1(); 4 s2.method2(); 5}

    }

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前

工厂模式实例(顺便回忆反射机制的应用)

一、原理反射机制的原理JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。工厂模式自述所谓工厂模式,是说由某个产品类接口、产品实现类、工厂类、客户端(单元测试主类)构成的一个模式,大程度的降低了代码的