『Javaとモード』読書ノートの二ーー工場方法モード

2546 ワード

工場方法モデルは比較的簡単な工場モデルであり,最大の改善は工場類が抽象化されていることである.具体的な工場の子類は具体的な製品の創建を担当して、二度と1つの工場の類が万千の責任を集めているわけではありません.これにより、ファクトリメソッドモデルは、次の4つの役割に関連します.
  • 抽象工場:この役割は依然として工場方法モデルの核心であるが、それは二度と応用されてもあまり関係がない.
  • 具体的な工場:抽象工場の実現類は、応用と密接なつながりがある
  • 抽象製品:製品の接品の定義、工場方法モデルでは、多層の抽象製品が存在する可能性があるため、製品には多層の継続関係がある可能性がある.
  • 特定の製品:特定の工場で作成するオブジェクト
  •     
             次のようにコードに反映されます.
    package com.pattern.factory.method;
    
    public interface Product {
    
    }
    
    package com.pattern.factory.method;
    
    public class ConcreteProduct1 implements Product {
    
    }
    
    package com.pattern.factory.method;
    
    public class ConcreteProduct2 implements Product {
    
    }
    
    package com.pattern.factory.method;
    
    public interface Creator {
    
    	public Product factory();
    }
    
    package com.pattern.factory.method;
    
    public class ConcreteCrector1 implements Creator {
    
    	@Override
    	public Product factory() {
    		
    		return new ConcreteProduct1();
    	}
    
    }
    
    
    package com.pattern.factory.method;
    
    public class ConcreteCrector2 implements Creator {
    
    	@Override
    	public Product factory() {
    		
    		return new ConcreteProduct2();
    	}
    
    }
    
    package com.pattern.factory.method;
    
    public class Client {
    
    	private static Creator creator1,creator2;
    	private static Product prod1,prod2;
    	
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		creator1 = new ConcreteCrector1();
    		creator2 = new ConcreteCrector2();
    		
    		prod1 = creator1.factory();
    		prod2 = creator2.factory();
    		
    	}
    
    }
    では、もっとよく したいのは、 の な モデルの の を、 モデルで すると、 を やすときに のコードを する がないことがわかります. な を するだけで、 を すればいいです.この では, メソッドモードはオン−オフモードを にサポートしている.
    
    
       JDK ,           ?      List  :
    
    


        List iterator() , Iterator , List , , 。 ,List , , Iterator , Iterator , 。 。


        : ( ) , 。 Pojo , JavaBean