디자인 모델 (1) 공장 방법 모델

2522 단어
소개 하 다.
디자인 모델 에 대해 서 는 이미 많이 알 고 계 실 겁 니 다.그 러 니까 여기 서 바로 시작 하 자.먼저 공장 방법 모델 을 소개 하 겠 습 니 다. 그것 은 일종 의 창설 형 모델 입 니 다.디자인 모델: 대상 소프트웨어 를 재 활용 할 수 있 는 토대 에서 공장 방법 에 대해 다음 과 같이 설명 한다.
공장 방법 모델 의 실질 은 "창설 대상 의 인 터 페 이 스 를 정의 하지만, 이 인 터 페 이 스 를 실현 하 는 클래스 로 하여 금 어떤 클래스 를 실례 화 할 것 인 지 를 결정 하 게 하 는 것 이다. 공장 방법 은 클래스 의 실례 화 를 하위 클래스 로 미 루 게 한다."
물론 실제 상황 에서 굳이 공장 인터페이스 와 여러 공장 의 구체 적 인 유형 을 딱딱 하 게 정의 해 야 하 는 것 은 아니다.만약 에 특정한 대상 이 복잡 하 게 만 들 면 우 리 는 해당 하 는 공장 류 를 직접 만 들 수 있다. 이때 이런 방식 을 간단 한 공장 이 라 고 부른다.
공장 방법 모델 은 여러 곳 에서 응용 되 고 있다. 예 를 들 어 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();
    }

좋은 웹페이지 즐겨찾기