Java之接口与工厂详解一(附源码)
Posted mufeng_慕枫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之接口与工厂详解一(附源码)相关的知识,希望对你有一定的参考价值。
前言
接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方式就是工厂方法设计模式。这与直接调用构造器不同,我们在工厂对象上调用的是创建方法,而该工厂对象将生成接口的某个实现的对象。理论上,通过这种方式,我们的代码将完全与接口的实现分离,这就使得我们可以透明地将某个实现替换成另一个实现。下面的实例展示了工厂方法的结构:
示例源码
package com.mufeng.theninthchapter;
interface Service
void method1();
void method2();
interface ServiceFactory
Service getService();
class Implementation1 implements Service
public Implementation1()
// TODO Auto-generated constructor stub
@Override
public void method1()
// TODO Auto-generated method stub
System.out.println("Implementation1 method1");
@Override
public void method2()
// TODO Auto-generated method stub
System.out.println("Implementation1 method2");
class Implementation1Factory implements ServiceFactory
@Override
public Service getService()
// TODO Auto-generated method stub
return new Implementation1();
class Implementation2 implements Service
public Implementation2()
// TODO Auto-generated constructor stub
@Override
public void method1()
// TODO Auto-generated method stub
System.out.println("Implementation2 method1");
@Override
public void method2()
// TODO Auto-generated method stub
System.out.println("Implementation2 method2");
class Implementation2Factory implements ServiceFactory
@Override
public Service getService()
// TODO Auto-generated method stub
return new Implementation2();
public class Factories
public static void serviceConsumer(ServiceFactory fact)
Service s = fact.getService();
s.method1();
s.method2();
public static void main(String[] args)
serviceConsumer(new Implementation1Factory());
//Implementations are completely interchangeable
serviceConsumer(new Implementation2Factory());
输出结果
Implementation1 method1
Implementation1 method2
Implementation2 method1
Implementation2 method2
以上是关于Java之接口与工厂详解一(附源码)的主要内容,如果未能解决你的问题,请参考以下文章
Java 代码实例 14BeanUtils用法详解,附源码分析