디자인 모델 (1) 공장 방법 모델
디자인 모델 에 대해 서 는 이미 많이 알 고 계 실 겁 니 다.그 러 니까 여기 서 바로 시작 하 자.먼저 공장 방법 모델 을 소개 하 겠 습 니 다. 그것 은 일종 의 창설 형 모델 입 니 다.디자인 모델: 대상 소프트웨어 를 재 활용 할 수 있 는 토대 에서 공장 방법 에 대해 다음 과 같이 설명 한다.
공장 방법 모델 의 실질 은 "창설 대상 의 인 터 페 이 스 를 정의 하지만, 이 인 터 페 이 스 를 실현 하 는 클래스 로 하여 금 어떤 클래스 를 실례 화 할 것 인 지 를 결정 하 게 하 는 것 이다. 공장 방법 은 클래스 의 실례 화 를 하위 클래스 로 미 루 게 한다."
물론 실제 상황 에서 굳이 공장 인터페이스 와 여러 공장 의 구체 적 인 유형 을 딱딱 하 게 정의 해 야 하 는 것 은 아니다.만약 에 특정한 대상 이 복잡 하 게 만 들 면 우 리 는 해당 하 는 공장 류 를 직접 만 들 수 있다. 이때 이런 방식 을 간단 한 공장 이 라 고 부른다.
공장 방법 모델 은 여러 곳 에서 응용 되 고 있다. 예 를 들 어 Hibernate 의 Session Factory, JPA 의 Entity Manager Factory 등 이다.
적용 성
만약 대상 이 대량의 중복 코드 를 만들어 야 한다 면 우 리 는 공장 방법 으로 코드 를 재 구성 하 는 것 을 고려 할 수 있다.물론 한 그룹의 대상 이 통일 적 으로 창설 하고 관리 해 야 한다 면 우리 도 공장 방법 모델 을 사용 할 수 있다.한 마디 로 필요 하 다 면 이 모델 을 사용 할 수 있다.이 모델 을 사용 할 때 관련 종 류 는 Factory 를 사용 하여 이름 을 짓 는 것 이 좋 으 며 다른 사람들 도 이것 이 공장 모델 이라는 것 을 쉽게 식별 할 수 있다.
코드 예
다음은 자바 코드 로 간단 한 공장 의 예 를 실현 하 였 다.우선 관련 클래스 를 작성 하 겠 습 니 다.
public interface Shape {
int Square = 1;
int Circle = 2;
int Rectangle = 3;
void print();
}
public class Circle implements Shape {
@Override
public void print() {
System.out.println(" ");
}
}
public class Rectangle implements Shape {
@Override
public void print() {
System.out.println(" ");
}
}
public class Square implements Shape {
@Override
public void print() {
System.out.println(" ");
}
}
그리고 공장 방법 을 만들어 보 겠 습 니 다.공장 방법 모델 에서 구체 적 인 창설 클래스 의 코드 는 공장 클래스 에 있다.우리 가 있 는 이곳 은 단지 간단 한 예 일 뿐이다.실제 코드 는 이것 보다 훨씬 복잡 하 다.
public class ShapeFactory {
public Shape getShape(int shapeType) {
Shape shape = null;
switch (shapeType) {
case Shape.Square:
shape = new Square();
break;
case Shape.Circle:
shape = new Circle();
break;
case Shape.Rectangle:
shape = new Rectangle();
break;
}
return shape;
}
}
그 후에 우 리 는 공장 을 통 해 대상 을 만 들 수 있 을 것 이다.
public void run() {
ShapeFactory factory = new ShapeFactory();
Shape square = factory.getShape(Shape.Square);
square.print();
Shape rectangle = factory.getShape(Shape.Rectangle);
rectangle.print();
Shape circle = factory.getShape(Shape.Circle);
circle.print();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.