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.

  • 相关阅读:
    bzoj3622: 已经没有什么好害怕的了
    BSGS
    LOJ#2320 生成树计数
    ??? cliquers
    生成函数
    洛谷P5206 数树
    01分数规划
    差分约束系统
    51nod1238 最小公倍数之和 V3
    51nod1237 最大公约数之和 V3
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11264784.html
Copyright © 2011-2022 走看看