java 디자인 모드 연재 (1)---공장 방법 모드

2674 단어
1. 자바 디자인 모델 연재(1)---공장 방법 모델
 
의도:
대상을 만드는 데 사용할 인터페이스를 정의하여 하위 클래스가 실례화된 클래스를 결정하도록 합니다.Factory Method는 클래스를 하위 클래스로 인스턴스화합니다.
      
용도:
4
  • 클래스가 만들어야 할 대상의 클래스를 모를 때..

  • 4
  • 클래스가 만든 대상을 하위 클래스로 지정하기를 원할 때

  • 4
  • 클래스가 창설 대상의 직책을 여러 개의 도움말 클래스 중 하나에 의뢰하고 어떤 도움말 클래스가 대리자라는 정보를 국부화하기를 원할 때..

  • 인스턴스:
                    1. 옷을 생산하는 공장 인터페이스를 정의하다
    package Factory_Method_Pattern;
    
    public interface ClothesFactory  {
    
    	  public  Clothes  productClothes();      
    	
    }
    

       
                   2.이 옷 공장의 인터페이스를 실현하여 어떤 유형의 옷을 구체적으로 생산할 것인가.
    package Factory_Method_Pattern;
    
    public class AdultClothesFactory implements ClothesFactory {
    
    	@Override
    	public  Clothes  productClothes() {
    	
    		  return  new  AdultClothes();
    		
    	}	
    }
    

     
    package Factory_Method_Pattern;
    
    public class ChildClothesFactory implements ClothesFactory {
    
    	@Override
    	public  Clothes  productClothes() {
    	
    		  return new  ChildClothes();
    		
    	}	
    }
    

    3. 옷의 이음매를 정의한다(옷은 입는 데 쓰인다)
          
    package Factory_Method_Pattern;
    
    public interface Clothes{
    
    	 public  void  dressClothes();
    	
    }
    

    4. 옷의 이음매를 실현한다. 어떤 옷, 어떤 사람이 입는가
    package Factory_Method_Pattern;
    
    public class  AdultClothes  implements  Clothes{
    
    	@Override
    	public void dressClothes() {
    
             System.out.println(" , ");
             
    	}
    }
    

     
    package Factory_Method_Pattern;
    
    public class  ChildClothes  implements Clothes{
    
    	@Override
    	public void dressClothes() {
    
             System.out.println(" , ");
             
    	}
    }
    

     
    5. 이 모드 테스트
     
    package Factory_Method_Pattern;
    
    public class Test{
    
        public static void main(String[] args){
           	
        	ClothesFactory  clothesFactory =  new    ChildClothesFactory();
           
            clothesFactory.productClothes().dressClothes();
            
            ClothesFactory    adultClothesFactory  =  new AdultClothesFactory();
            
            adultClothesFactory.productClothes().dressClothes();
        
        }
    }
    
    

    6. 방문해 주셔서 감사합니다.
      
         
     
     

    좋은 웹페이지 즐겨찾기