Java 설계 모드 중 하나(단순 플랜트 모드)
2374 단어 java 디자인 모드공장 모델
단순 공장 모델은 유형의 창설형 모델에 속하고 정적 공장 방법 모델이라고도 부른다.하나의 클래스를 전문적으로 정의함으로써 다른 클래스의 실례를 만드는 것을 책임진다. 생성된 실례는 일반적으로 공통된 부류를 가지고 있다.
2. 모델에 포함된 역할과 직책은?
1. 공장(Creator) 역할은 단순 공장 모델의 핵심으로 모든 실례를 만드는 내부 논리를 실현한다.공장류는 외부에서 직접 호출되어 필요한 제품 대상을 만들 수 있다.2. 추상(Product) 역할 단순 공장 모델이 만든 모든 대상의 부류는 모든 실례가 공유하는 공공 인터페이스를 묘사한다.3. 특정 제품(Concrete Product) 역할 단순 플랜트 모드에서 작성된 특정 인스턴스 객체
3. 단순 공장 모델의 장단점은?
이 모델에서 공장류는 전체 모델의 관건이다.이것은 외부가 정한 정보에 따라 어떤 구체적인 유형을 만들어야 하는지를 결정하는 데 필요한 판단 논리를 포함한다.사용자는 이 대상이 어떻게 만들어지고 어떻게 조직되는지 알 필요 없이 공장 클래스에 따라 필요한 실례를 직접 만들 수 있다.전체 소프트웨어 체계 구조의 최적화에 유리하다.
단순한 공장 모델의 단점도 공장 유형에 나타난다. 공장 유형은 모든 실례의 창설 논리를 집중했기 때문에'고내집'분야가 잘 되지 않았다.또한 시스템의 구체적인 제품류가 계속 증가할 때 공장류도 상응하는 수정을 요구할 수 있어 확장성이 좋지 않다.
코드 구현
추상(Product) 인터페이스 역할:Fruity
package com.qianyan.product;
public interface Fruit {
/**
*
*/
public void get();
}
특정 제품(Concrete Product) 역할
Apple:
package com.qianyan.bean;
import com.qianyan.product.Fruit;
public class Apple implements Fruit{
/**
*
*/
public void get(){
System.out.println(" !");
}
}
Banana: package com.qianyan.bean;
import com.qianyan.product.Fruit;
public class Banana implements Fruit{
/**
*
*/
public void get(){
System.out.println(" !");
}
}
공장류FruitFactory.java
package com.qianyan.factory;
import com.qianyan.bean.Apple;
import com.qianyan.bean.Banana;
import com.qianyan.product.Fruit;
public class FruitFactory {
public static Fruit getFruit(String type) throws Exception{
if(type.equalsIgnoreCase("apple"))
return Apple.class.newInstance();
else if(type.equalsIgnoreCase("banana"))
return Banana.class.newInstance();
else{
System.out.println(" !");
return null;
}
}
}
고객:
package com.qianyan.user;
import com.qianyan.factory.FruitFactory;
import com.qianyan.product.Fruit;
public class Customer {
public static void main(String[] args) throws Exception {
Fruit apple = FruitFactory.getFruit("Apple");
Fruit banana = FruitFactory.getFruit("banana");
apple.get();
banana.get();
}
}
테스트 결과:
!
!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
어댑터(클래스 어댑터, 객체 어댑터 모드)1: 클래스 어댑터 모드 만일 우리가 Person류가 있다면, 이 Person류에는 불고 당기는 방법이 있다.시스템 개발의 절반에 이르러 우리는 이 종류에 두 가지 방법을 더 첨가하여 연주, 당기기, 연주, 노래의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.