• JAVA 注册工厂 模板 <<Thinking in Java>> 随笔


    注册工厂的好处就是类的创建过程由类本身完成

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    interface Factory<T>{
    	T create();
    }
    
    class Filter extends Part{
    	
    }
    
    class FuelFilter extends Filter{
    	public static class thisFactory implements Factory<FuelFilter>{
    		public FuelFilter create() {
    			return new FuelFilter();
    		}
    	}
    }
    
    class CabinFilter extends Filter{
    	public static class thisFactory implements Factory<CabinFilter>{
    		public CabinFilter create() {
    			return new CabinFilter();
    		}
    	}
    }
    
    
    class Part{
    	public String toString() {
    		return getClass().getSimpleName();
    	}
    	static List<Factory<? extends Part>> partFactories =
    		new ArrayList<Factory<? extends Part>>();
    	static {
    		partFactories.add(new FuelFilter.thisFactory());
    		partFactories.add(new CabinFilter.thisFactory());
    	}
    	public static Random random = new Random(47);
    	public static Part createRandom() {
    		int n = random.nextInt(partFactories.size());
    		return partFactories.get(n).create();
    	}
    }
    
    public class Test {
    	public static void main(String[] args) throws Exception {
    		for(int i=0;i<2;i++) {
    			System.out.println(Part.createRandom());
    		}
    	}
    }
    

      

  • 相关阅读:
    第03组 团队Git现场编程实战
    团队Git现场编程实战
    第二次结对编程作业
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    第四组 团队Git现场编程实战
    第二次结对编程作业
  • 原文地址:https://www.cnblogs.com/--zz/p/9630040.html
Copyright © 2020-2023  润新知