디자인 모델 학습 노트 의 간단 한 공장 모델
4141 단어 디자인 모드
단순 공장 모드:
간단 한 공장 모델 은 디자인 모델 에서 가장 간단 하지만 응용 은 가장 광범 위 한 모델 이 라 고 할 수 있다. 우 리 는 마음대로 예 를 들 어 그의 장점 을 살 펴 보 자.
그런데 우리 집 은 고양이, 강아지, 오 트 만 같은 작은 동물 을 많이 키 웠 어 요. 고양 이 는 물고 기 를 먹고 개 는 고 기 를 먹고 오 트 만 은 작은 괴물 을 먹 었 어 요.지금 우 리 는 동물 한 마 리 를 마음대로 잡 아 내 는 것 이 무엇 인지 알 고 싶 습 니 다. 모델 을 설계 하지 않 으 면 이렇게 이 루어 집 니 다.
public class Cat {
public Cat() {}
public void eat() {
System.out.println(" ");
}
}
public class Dog {
public Dog() {}
public void eat() {
System.out.println(" ");
}
}
public class Ultraman {
public Ultraman () {}
public void eat() {
System.out.println(" ");
}
}
public class MainClass {
/**
*
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String animalName = null;
System.out.println("Please enter the name of the animal:");
animalName = br.readLine();
if("Dog".equals(animalName)) {
Dog dog = new Dog();
dog.eat();
} else if("Cat".equals(animalName)) {
Cat cat = new Cat();
cat.eat();
} else if("Ultraman".equals(animalName)) {
Ultraman ulMan = new Ultraman();
ulMan.eat();
}
}
}
이런 서법 의 단점:
1. 마침 우리 집 이 동물원 이 라면 수많은 if.. else 가 있 을 것 이다.
2. 만약 에 우리 가 작은 동물 들 이 무엇 을 먹 는 지 알 고 싶 을 뿐만 아니 라 동물 들 이 어떤 똥 을 싸 는 지 알 고 싶다 면 이 럴 때 모든 if.. else 에 똥 을 싸 는 방법 을 넣 어야 한다. 이런 중복 코드 는 동물 이 많 을 수록 작업량 이 많아 질 것 이다.
3. 모든 if.. else 의 동작 은 비슷 한 동작 입 니 다. 안에 동작 이 매우 많 을 때 대량의 코드 가 생 겨 유지 하기 가 쉽 지 않 습 니 다.
지금 우 리 는 간단 한 공장 방법 으로 코드 를 개선 합 니 다.
public interface Animal {
public void eat();
}
public class Cat implements Animal{
public Cat() {}
public void eat() {
System.out.println(" ");
}
}
//
...
/**
* ,
* @author link
*/
public class OperationFactory {
public static Animal createAnimal(String animalName) {
Animal animal = null;
if("Dog".equals(animalName)) {
animal = new Dog();
} else if("Cat".equals(animalName)) {
animal = new Cat();
} else if("Ultraman".equals(animalName)) {
animal = new Ultraman();
}
return animal;
}
}
public class MainClass {
/**
*
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String animalName = null;
System.out.println("Please enter the name of the animal:");
animalName = br.readLine();
// ,
Animal animal = OperationFactory.createAnimal(animalName);
// “ ” , 、
animal.eat();
}
}
MainClass 실행,
Please enter the name of the animal:
Ultraman
오 트 만 몬스터 먹 기
간단 한 공장 방법 을 사용 하 는 장점:
1. 우리 가 동물원 을 열 더 라 도 공장 류 에 해당 동물 의 초기 화 방법 을 추가 하면 됩 니 다. 반 사 를 사용 하여 초기 화 하면 모든 if.. else 를 제거 하여 코드 를 더욱 간결 하 게 할 수 있 습 니 다.더 중요 한 것 은 동물 을 아무리 늘 려 도 업무 코드 에 영향 을 주지 않 는 다 는 것 이다.
2. 우리 의 업무 코드 는 매우 간결 하고 매우 많 을 것 입 니 다. 또한 업무 코드 에서 각종 동물 의 eat () 방법 을 중복 호출 할 필요 가 없습니다. 동물 들 이 어떤 떡 을 싸 는 지 알 고 싶 더 라 도 업무 코드 에 코드 한 줄 만 추가 하면 됩 니 다. 일반 코드 가 if.. else 의 모든 판단 에 한 줄 씩 추가 해 야 하 는 것 이 아 닙 니 다.(현실 작업 에 서 는 수 십 줄 에서 백 줄 이 넘 는 것 일 수도 있다).
디자인 에 있어 간단 한 공장 방법 으로 코드 의 결합 도 를 낮 추고 변동 이 발생 할 가능성 이 가장 높 으 며 확 장 된 코드 를 추출 하여 업무 코드 의 간결 함 과 상대 적 안정성 을 확보 했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.