반응형 design pattern4 Factory Method Pattern 팩토리메서드 패턴 GoF 디자인패턴 GoF 디자인 패턴 중 생성패턴의 하나인 Factory Method 패턴에 대해 알아보도록 하겠습니다. 특징 팩토리 메서드 패턴 (Factory Method Pattern)은 객체 생성에 관련된 디자인 패턴 중의 하나로, 객체의 생성을 서브클래스로 분리하여 객체를 생성하는 방식을 추상화 하는데 사용됩니다. 추상화된 팩토리 클래스에 대한 인터페이스를 제공하고, 이를 구체화하여 서브클래스에서 실제 객체를 생성하는 메서드를 구현(캡슐화)합니다. 이를 통해 객체 생성 로직을 클라이언트로부터 분리하고, 유연성과 확장성을 제공합니다. 샘플코드 public interface CommonResponse { Object getData(); } public class JpaResponse implements CommonR.. Programing/Design Patterns 2023. 7. 12. Abstract Factory Pattern 추상팩토리 패턴 GoF 디자인패턴 GoF 디자인 패턴 중 생성패턴의 하나인 Abstract Factory 패턴에 대해 알아보도록 하겠습니다. 특징 추상 팩토리 패턴 (Abstract Factory Pattern)은 객체 생성에 관련된 디자인 패턴 중의 하나로, 관련된 객체들의 팩토리를 생성하기 위한 인터페이스를 제공하며, 이 팩토리를 사용하여 서로 다른 객체들의 그룹을 생성할 수 있습니다. 객체들의 생성로직을 클라이언트로부터 분리하여 객체 간 결합도를 낮추고, 유연성과 확장성을 높이는데 사용됩니다. 샘플코드 Jpa와 Mybatis로 응답을 받는 2개의 추상 객체를 정의하고, 각각 응답에 대한 로직을 구현한 구체적인 객체를 생성하는 팩토리를 만들어보겠습니다. public interface CommonResponse { Object getD.. Programing/Design Patterns 2023. 7. 12. Prototype Pattern 프로토타입 패턴 GoF 디자인패턴 GoF 디자인 패턴 중 생성패턴의 하나인 Prototype 패턴에 대해 알아보도록 하겠습니다. 특징 Prototype Pattern 은 자주 사용하는 객체를 생성해 두고 이를 복사하여 사용하는 패턴을 말합니다. Singleton 패턴과 달리 매번 새로운 객체가 생성이 됩니다. @Scope("prototype") 설정으로 Prototype Pattern 으로 동작하게 할 수 있습니다. 참조 변수 필드의 경우 얕은 복사로 처리 되기 때문에 java.lang.Clonable interface를 implements 받아 깊은 복사로 처리되도록 clone method를 구현해야 합니다. 샘플코드 import java.util.ArrayList; import java.util.List; import java.uti.. Programing/Design Patterns 2023. 7. 11. Singleton Pattern 싱글턴 패턴 GoF 디자인패턴 GoF 디자인 패턴 중 생성패턴의 하나인 Singleton 패턴에 대해 알아보도록 하겠습니다. Singleton Pattern은 Spring bean, @Scope("singleton"), MapStruct Mapper 등 많이 사용되는 패턴 중의 하나입니다. 특징 Singleton 은 객체가 오직 한 개의 인스턴스만 갖도록 하는 패턴입니다. Spring을 예로 들면 @Component 관련 어노테이션을 통해 Spring Container에 단 하나의 객체 인스턴스만 생성을 하고, Inject 관련 어노테이션 (@Autowired, @Resource)을 통해 주입하여 사용하게 됩니다. 단점으로는 상속이 불가능 하기 때문에 다형성을 해치는 개념이고, 전역적인 접근을 허용하기 때문에 정보은닉을 해치는 단점이.. Programing/Design Patterns 2023. 7. 11. 이전 1 다음 💲 추천 글 반응형