반응형 디자인패턴4 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. Javascript 퍼사드(façade) 패턴 / 자주 같이 사용되는 메서드를 묶자 Javascript 퍼사드(façade) 패턴 / 자주 같이 사용되는 메서드를 묶자 퍼사드 패턴(façade pattern) 은 주로 같이 자주 사용되는 메서드의 호출들을 묶어 새로운 메소드를 만들어 주는 패턴입니다. 개발을 하다보면 많은 기능을 가지고 있는 메소드를 개별 기능으로 나누어 작성을 하곤 합니다. 기능의 세분화는 좋은 방법이지만 메소드의 수를 증가시키고 메서드간 매개변수가 증가하게 될 수도 있습니다. 퍼사드 패턴을 사용하게 되면 여러 인터페이스를 활용하는 로직을 하나의 통합된 인터페이스를 제공하므로서 쉽게 여러 인터페이스를 활용할 수 있습니다. 예를들어, 지도라는 객체에 마커, 폴리라인, 폴리곤 객체를 추가하는 setMap 메서드가 있습니다. setMap(){ /*지도 객체 초기화 로직*/ .. Programing/Design Patterns 2022. 3. 31. 이전 1 다음 반응형