디자인 패턴 : 팩토리 메서드(Factory Method) 에서 대해서 알아보자.
IT/JAVA
2023. 4. 19. 15:23
728x90
팩토리 메서드 패턴은 부모 클래스에서 인터페이스 등을 통해 추상화하여 지정하고 자식클래스에서 객체 생성코드를 클라인언트로 분리하여 처음 개발시 추가가 될 수 있는 모듈에대해 미리 대비하여 유연성과 확장성을 가지기 위한 패턴입니다.
즉, 팩토리 메서드는 객체 생성을 담당하는 팩토리 클래스를 정의하고, 이를 사용하여 객체를 생성합니다. 이를 통해 클라이언트 코드는 구체적인 객체 생성 로직을 알 필요 없이 팩토리 클래스에 의존하여 객체를 생성할 수 있습니다.
public abstract class Animal {
public abstract String getName();
}
public class Cat extends Animal {
@Override
public String getName() {
return "Cat";
}
}
public class Dog extends Animal {
@Override
public String getName() {
return "Dog";
}
}
public interface AnimalFactory {
public Animal createAnimal();
}
public class CatFactory implements AnimalFactory {
@Override
public Animal createAnimal() {
return new Cat();
}
}
public class DogFactory implements AnimalFactory {
@Override
public Animal createAnimal() {
return new Dog();
}
}
public class Main {
public static void main(String[] args) {
AnimalFactory catFactory = new CatFactory();
Animal cat = catFactory.createAnimal();
System.out.println("I got a " + cat.getName());
AnimalFactory dogFactory = new DogFactory();
Animal dog = dogFactory.createAnimal();
System.out.println("I got a " + dog.getName());
}
}
'IT > JAVA' 카테고리의 다른 글
파이썬 GPU CUDA Torch를 이용한 확인 (0) | 2023.08.23 |
---|---|
spring에서 특정 프로퍼티가 없으면 빈이 등록되지 않는 어노테이션 - @ConditionalOnProperty (2) | 2023.05.08 |
자바 리스트(ArrayList)와 배열(Array)의 차이점 3가지 (0) | 2018.06.05 |
자바 Map<String,String>을 다른 Map 키값으로 사용한다면 (0) | 2018.05.30 |
[자바] java method timeout - 메서드 타임 아웃 걸기 (0) | 2018.04.17 |