JAVA 자바 디자인 패턴 : 팩토리 패턴, 장점 단점, 예시

2024. 4. 16. 18:34코딩/코딩 테스트

 

 

JAVA 자바 디자인 패턴 : 팩토리 패턴


팩토리 패턴(Factory Pattern)은 객체 지향 프로그래밍에서 객체의 생성을 처리하는 디자인 패턴 중 하나입니다. 이 패턴은 객체 생성 과정의 복잡성을 감소시키고, 클라이언트 코드와 객체 생성 사이의 의존성을 줄이는 데 목적이 있습니다. 팩토리 패턴은 크게 두 종류로 나뉩니다: 팩토리 메서드 패턴(Factory Method Pattern)과 추상 팩토리 패턴(Abstract Factory Pattern). 

 

 

 

 

팩토리 패턴 예시

예를 들어, 다양한 타입의 차량을 생성하는 간단한 팩토리 메서드 패턴을 구현해 보겠습니다.

abstract class Vehicle {
    abstract void startEngine();
}

class Car extends Vehicle {
    void startEngine() {
        System.out.println("Car engine starts.");
    }
}

class Truck extends Vehicle {
    void startEngine() {
        System.out.println("Truck engine starts.");
    }
}

abstract class VehicleFactory {
    abstract Vehicle createVehicle(String type);
}

class ConcreteVehicleFactory extends VehicleFactory {
    Vehicle createVehicle(String type) {
        if (type.equals("car")) {
            return new Car();
        } else if (type.equals("truck")) {
            return new Truck();
        }
        return null;
    }
}

public class Main {
    public static void main(String[] args) {
        VehicleFactory factory = new ConcreteVehicleFactory();
        Vehicle myVehicle = factory.createVehicle("car");
        myVehicle.startEngine();
    }
}

 

 

위 코드에서 VehicleFactory는 차량을 생성하는 추상 팩토리이며, ConcreteVehicleFactory는 이 인터페이스를 구현하여 실제 Vehicle 객체를 생성합니다. 이 패턴을 사용하면, 새로운 차량 타입이 추가되어도 팩토리 클래스만 수정하면 되므로 기존 코드에는 영향을 주지 않습니다.

 

 

 

팩토리 패턴의 장점

  1. 생성 로직의 분리: 객체 생성과 비즈니스 로직이 분리되어 코드 관리가 용이해집니다.
  2. 코드의 유연성: 새로운 객체 타입을 추가하거나 변경할 때 기존 코드를 변경하지 않아도 되므로, 확장성이 좋습니다.
  3. 재사용성 향상: 동일한 생성 패턴을 여러 곳에서 재사용할 수 있습니다.

 

팩토리 패턴의 단점

  1. 클래스 수 증가: 각각의 새로운 객체 타입마다 새로운 팩토리 클래스가 필요할 수 있어 시스템의 복잡성이 증가할 수 있습니다.
  2. 인터페이스 의존성: 클라이언트 코드가 팩토리 인터페이스에 의존하게 되어, 인터페이스 설계가 중요해집니다.

 

 

 

 

 

 

 

 

JAVA 자바 디자인 패턴 : 팩토리 패턴, 장점 단점,  예시