인터뷰 질문을 검토 - 일반적인 디자인 패턴 - 추상 팩토리 패턴을

필기 추상 팩토리 패턴

추상 공장 및 제품 :

패키지 com.ajax.pattern.abstractfactory; 

공중  인터페이스 FruitFactory {
     / ** 
     *果肉
     * @return 
     * / 
    고기 getMeat (); 

    / ** 
     *果皮
     * @return 
     * / 
    피부 getSkin (); 
}
패키지 com.ajax.pattern.abstractfactory; 

공공  추상  클래스 고기 {
      추상적  무효 내림차순 (); 
}
패키지 com.ajax.pattern.abstractfactory; 

공공  추상  클래스 피부 {
     추상적  무효 내림차순 (); 
}

제품의 첫 번째 세트 :

패키지 com.ajax.pattern.abstractfactory; 

공용  클래스 AppleMeat는 연장 고기 { 
    @Override 
    공극 DESC () { 
        에서 System.out.println ( "苹果肉" ); 
    } 
}
패키지 com.ajax.pattern.abstractfactory; 

공용  클래스 AppleSkin이 연장 스킨 { 
    @Override 
    공극 DESC () { 
        에서 System.out.println ( "苹果皮" ); 
    } 
}

제품의 두 번째 세트 :

패키지 com.ajax.pattern.abstractfactory; 

공용  클래스 OrangeMeat는 연장 고기 { 
    @Override 
    공극 DESC () { 
        에서 System.out.println ( "橙肉" ); 
    } 
}
패키지 com.ajax.pattern.abstractfactory; 

공용  클래스 OrangeSkin이 연장 스킨 { 
    @Override 
    공극 DESC () { 
        에서 System.out.println ( "橙皮" ); 
    } 
}

추상 팩토리 구현 :

패키지 com.ajax.pattern.abstractfactory; 

공공  클래스 AppleFactory는 구현 FruitFactory가 { 
    @Override 
    공공 고기 getMeat () {
         반환  ) (AppleMeat을; 
    } 

    @Override 
    공공 피부 getSkin는 () {
         반환  ) (AppleSkin을; 
    } 
}
패키지 com.ajax.pattern.abstractfactory; 

공공  클래스 OrangeFactory는 구현 FruitFactory가 { 
    @Override 
    공공 고기 getMeat () {
         반환  ) (OrangeMeat을; 
    } 

    @Override 
    공공 피부 getSkin는 () {
         반환  ) (OrangeSkin을; 
    } 
}

실행 :

패키지 com.ajax.pattern.abstractfactory; 

공용  클래스 실행 {
     공공  정적  무효 메인 (문자열 []에 args) { 
        FruitFactory F1 = 새로운 AppleFactory (); 
        f1.getMeat () DESC ().; 
        f1.getSkin () DESC ().; 
        FruitFactory F2 = 새로운 OrangeFactory (); 
        f2.getMeat () DESC ().; 
        f2.getSkin () DESC ().; 
    } 
}

 

추천

출처www.cnblogs.com/caizhiqin/p/11290350.html