자바 디자인패턴 - 팩토리 메소드 패턴

유사개발자·2022년 8월 5일
1

Design Patten

목록 보기
2/3
post-thumbnail

팩토리 메소드 패턴

  • 장점
    • 객체 생성 처리를 서브 클래스로 분리 해 처리하도록 캡슐화하는 패턴
    • 클래스간의 결합도를 낮춰 확장에는 열려있으며 변경에는 닫혀있는 패턴
  • 단점
    • 클래스가 많아져 구조가 복잡해질 수 있음

팩토리 메소드 패턴 구조

구체적인 객체의 생성 과정을 팩토리로 모듈화하여 구체적인 부분이 아닌 추상적인 부분에
의존할 수 있도록 하여 기존 코드를 수정하지 않고 새로운 인스턴스를 다른 방법으로
생성하도록 확장할 수 있다.

확장에는 열려 있으며 변경에는 닫혀있는 OCP 개방폐쇄원칙을 적용한 패턴.

팩토리 메소드 패턴 구현시 참고할 점

자바 8의 인터페이스 default 메소드

자바 8버전 전에는 인터페이스의 기본 메소드를 만드려면 추상 클래스를 만들어 인터페이스의 추상 메소드를 구현한 뒤 실제 인터페이스 구현체가 추상 클래스를 상속받아 사용해야 하는 번거러움이 있었다.

하지만 자바 8의 default 메소드로 인해 인터페이스 내에서 기본 메소드를 정의 할 수 있게 되었다.

public interface ShipFactory {

	default Ship orderShip(String name, String email) {
        validate(name, email);
        prepareFor(name);
        Ship ship = createShip();
        sendEmailTo(email, ship);
        return ship;
    }
}

자바 9의 인터페이스 private 메소드

인터페이스내의 private 메소드를 만들 수 있게 되어
default 메소드 구현시 읽기 좋은 코드로 구현할 수 있게 되었다.

profile
개발자와 유사한 개발자입니다

0개의 댓글