공장 설계 모델 (세 가지) 에 대한 상세 한 설명
5198 단어 Java
https://www.cnblogs.com/sunpengblog/p/10397986.html
무엇이 공장 설계 모델 입 니까?공장 디자인 모델 은 말 그대로 생산 대상 에 사용 되 는 것 입 니 다. 자바 에서 만물 은 모두 대상 입 니 다. 이런 대상 들 은 모두 만들어 야 합 니 다. 만약 에 만 들 때 new 대상 을 직접 만 들 면 이 대상 에 대한 결합 이 심각 합 니 다. 만약 에 우리 가 대상 을 바 꾸 려 면 모든 new 대상 의 지역 이 수정 해 야 합 니 다. 이것 은 소프트웨어 디자인 의 개폐 원칙 에 위배 되 는 것 이 분명 합 니 다.만약 우리 가 공장 을 사용 하여 생산 대상 을 생산 한다 면 우 리 는 공장 과 만 접촉 하면 된다. 철저하게 대상 과 결합 을 해제 하고 대상 을 바 꾸 려 면 공장 에서 이 대상 을 직접 바 꾸 면 대상 과 결합 을 해제 하 는 목적 을 달성 할 수 있다.그래서 공장 모델 의 가장 큰 장점 은 디 결합 이다.
본 편 은 주로 세 가지 공장 디자인 모델 의 사용 을 소개 한다. 1. 간단 한 공장 2. 공장 방법 3. 추상 적 인 공장
단순 공장 설계 모델
정의: 한 공장 방법 으로 들 어 오 는 매개 변수 에 따라 해당 하 는 제품 대상 을 생 성 합 니 다.역할: 1. 추상 적 인 제품 2. 구체 적 인 제품 3. 구체 적 인 공장 4. 제품 사용자 의 사용 설명: 먼저 제품 류 를 추상적으로 추정한다. 예 를 들 어 사과 와 배 는 모두 과일 에 속 하고 과일 류 Fruit 를 추상적으로 추상적으로 추정한다. 사과 와 배 는 구체 적 인 제품 류 이다. 그 다음 에 과일 공장 을 만들어 각각 사과 와 배 를 만든다.코드 는 다음 과 같 습 니 다:
과일 인터페이스
public interface Fruit {void whatIm ();} 구체 적 인 사과
public class Apple implements Fruit {@ Override public void whatIm () {/ / 사과} 구체 적 인 배
public class Pear implements Fruit {@ Override public void whatIm () {/ / 배} 구체 적 인 공장 과일 공장
public class FruitFactory {
public Fruit createFruit(String type) {
if (type.equals("apple")) {//
return new Apple();
} else if (type.equals("pear")) {//
return new Pear();
}
return null;
}
} 제품 사용
FruitFactory mFactory = new FruitFactory(); Apple apple = (Apple) mFactory.createFruit(“apple”);//사과 Pear pear = (Pear) mFactory. createFruit ("pear") 획득 하기; /배 를 얻 으 면 이렇게 간단 한 공장 설계 모델 이 완성 되 는데 무슨 문제 가 있 습 니까?그래, 그럼 내 가 바 나 나 를 먹고 싶다 면 귤 을 먹고 싶다 면? 내 가 만약 에 뭐 든 먹고 싶다 면?그래서 이상 의 이런 방식 은 내 가 과일 을 추가 하고 싶 을 때마다 반드시 공장 류 를 수정 해 야 한다. 이것 은 분명히 개폐 원칙 을 위반 하고 바람 직 하지 않다.그래서 간단 한 공장 은 제품 대상 이 비교적 적 고 제품 의 고정 적 인 수요 에 만 적합 하 며 제품 의 변 덕 스 러 운 수요 에 있어 적당 하지 않다.그래서 우 리 는 다음 방식 을 살 펴 보 자.
공장 방법 설계 모델
정의: 공장 을 하나의 인터페이스 나 추상 류 로 추출 하고 구체 적 으로 어떤 제품 을 생산 하 는 지 는 하위 류 에 의 해 결정 된다.역할: 추상 적 인 제품 류 의 구체 적 인 제품 류 추상 적 인 공장 류 의 구체 적 인 공장 류 사용 설명: 상기 사례 와 마찬가지 로 제품 류 가 추상 화 되 었 다. 이번에 우 리 는 공장 류 도 추상 화하 고 어떤 제품 을 생산 하 는 지 는 하위 류 에 의 해 결정 된다.코드 는 다음 과 같다. 과일 인터페이스 사과 류 와 배 류 코드 는 상례 와 같다.
공장 인터페이스
public interface FruitFactory {Fruit createFruit (); / / 생산 과일} 사과 공장
public class AppleFactory implements FruitFactory {@ Override public Fruit createFruit () {return new Apple ();} 배 공장
public class PearFactory implements FruitFactory {@ Override public Fruit createFruit () {return new Pear ();} 사용
AppleFactory appleFactory = new AppleFactory(); PearFactory pearFactory = new PearFactory(); Apple apple = (Apple) appleFactory.createFruit();//사과 Pear pear = (Pear) pearFactory. createFruit (); /배 이상 을 얻 는 방식 은 결합 을 풀 었 고 개폐 원칙 도 따 랐 지만 문 제 는 해결 되 지 않 았 습 니 다. 국 을 바 꾸 고 약 을 바 꾸 지 않 았 습 니 다. 제 가 필요 로 하 는 제품 이 많 으 면 공장 을 많이 만들어 야 하기 때문에 이런 방식 의 단점 도 뚜렷 합 니 다.
추상 공장 설계 모델
정의: 관련 되 거나 서로 의존 하 는 대상 을 만 들 기 위 한 인 터 페 이 스 를 제공 합 니 다. 구체 적 인 종 류 를 지정 할 필요 가 없습니다.역할: 공장 방법 과 마찬가지 로 추상 적 인 공장 과 공장 방법의 모델 은 대체적으로 같다. 공장 방법 은 구체 적 인 제품 을 생산 하 는 것 이 고 추상 적 인 공장 은 똑 같 고 상대 적 인 관 계 를 가 진 제품 을 생산 할 수 있다.중요 한 것 은 한 조, 한 조, 일련의 것 이다.예 를 들 어 샤 오미 핸드폰 을 생산 하면 샤 오미 핸드폰 은 시리즈 가 많 고 샤 오미 노트, 홍 미 노트 등 이 있다.만약 샤 오미 노트 가 생산 에 필요 한 부품 이 825 프로세서, 6 인치 스크린 이 있 고, 홍 미 는 650 프로세서 와 5 인치 스크린 만 있 으 면 된다.추상 적 인 공장 으로 실현:
cpu 인터페이스 와 구현 클래스
public interface Cpu { void run();
class Cpu650 implements Cpu {
@Override
public void run() {
//625
}
}
class Cpu825 implements Cpu {
@Override
public void run() {
//825
}
}
} 화면 인터페이스 와 구현 클래스
public interface Screen {
void size();
class Screen5 implements Screen {
@Override
public void size() {
//5
}
}
class Screen6 implements Screen {
@Override
public void size() {
//6
}
}
} 공장 인터페이스
public interface PhoneFactory {
Cpu getCpu();// cpu
Screen getScreen();//
} 구체 적 인 공장 실현 유형: 샤 오미 핸드폰 공장
public class XiaoMiFactory implements PhoneFactory {@ Override public Cpu getCpu () {return new Cpu. cpu 825 (); / 고성능 프로세서}
@Override
public Screen getScreen() {
return new Screen.Screen6();//6
}
} 구체 적 인 공장 실현 유형: 홍 미 핸드폰 공장
public class HongMiFactory implements PhoneFactory {
@Override
public Cpu getCpu() {
return new Cpu.Cpu650();//
}
@Override
public Screen getScreen() {
return new Screen.Screen5();//
}
} 상기 사례 를 통 해 알 수 있 듯 이 추상 적 인 공장 은 일련의 제품 생산 수 요 를 해결 할 수 있 고 대량의 양, 여러 계열 의 제품 에 대해 추상 적 인 공장 으로 더욱 잘 관리 하고 확장 할 수 있다.
세 가지 공장 방식 에 대한 정리: 1. 간단 한 공장 과 공장 방법 에 있어 이들 의 사용 방식 은 실제 적 으로 똑 같 습 니 다. 만약 에 제품 의 분류 와 명칭 이 확정 되면 수량 이 상대 적 으로 고정 되 고 간단 한 공장 모델 을 사용 하 는 것 을 추천 합 니 다.2. 추상 적 인 공장 은 상대 적 으로 복잡 한 문 제 를 해결 하고 일련의 대량의 대상 생산 에 적용 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.