zoukankan      html  css  js  c++  java
  • Java 接口工厂案例

    接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方式就是工厂方法设计模式。这与直接调用构造器不同,我们在工厂对象上调用的是创建方法,而该工厂对象将生成接口的某个实现的对象。

    代码:

    interface Cycle {
    	void name();
    }
    
    interface CycleFactory {
    	Cycle getCycle();
    }
    
    class Unicycle implements Cycle {
    
    	@Override
    	public void name() {
    		// TODO Auto-generated method stub
    		System.out.println("Unicycle!");
    	}
    }
    class UnicycleFactory implements CycleFactory {
    
    	@Override
    	public Cycle getCycle() {
    		// TODO Auto-generated method stub
    		return new Unicycle();
    	}
    }
    
    class Bicycle implements Cycle {
    
    	@Override
    	public void name() {
    		// TODO Auto-generated method stub
    		System.out.println("Bicycle!");
    	}
    }
    class BicycleFactory implements CycleFactory {
    
    	@Override
    	public Cycle getCycle() {
    		// TODO Auto-generated method stub
    		return new Bicycle();
    	}
    }
    
    class Tricycle implements Cycle {
    
    	@Override
    	public void name() {
    		// TODO Auto-generated method stub
    		System.out.println("Tricycle!");
    	}
    }
    class TricycleFactory implements CycleFactory {
    
    	@Override
    	public Cycle getCycle() {
    		// TODO Auto-generated method stub
    		return new Tricycle();
    	}
    	
    }
    
    public class Cycles {
    	public static void getCycles(CycleFactory factory) {
    		Cycle c = factory.getCycle();
    		c.name();
    	}
    	public static void main(String[] args) {
    		getCycles(new UnicycleFactory());
    		getCycles(new BicycleFactory());
    		getCycles(new TricycleFactory());
    	}
    }
    

     通过这种方式,我们就可以创建不同的自行车来复用这段代码。

     来自 ----- Thinking For Java.

  • 相关阅读:
    /etc/sysconfig/network-scripts/ifcfg-eth0
    虚拟机不能上网
    VMware3种网络模式
    SecureCRT学习之道:用SecureCRT来上传和下载数据
    SecureCRT学习之道:SecureCRT 常用技巧
    SecureCRT学习之道:SecureCRT常用快捷键设置与字体设置方法
    CentOS7 编译安装LNMP
    提高PHP编程效率的方法
    基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能php平台
    Linux系统部署规范v1.0
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11264784.html
Copyright © 2011-2022 走看看