필기 추상 팩토리 패턴
추상 공장 및 제품 :
패키지 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 ().; } }