DesignPattern3 자바(JAVA) - 추상팩토리(Abstract Factory) 패턴 1. 의도 구체적인 서브클래스 정의 없이 관련 객체들을 하나의 군으로 통합시킨 인터페이스를 제공함. 2. 용도 일관된 방식으로 객체를 생성하고자 할 때 유용함. 구체적인 객체 생성을 모두 구체 팩토리 클래스에 위임함으로써, 여러 객체가 생성되는 것을 방지함. 3. UML 4. 구현 public class Client { public static void main(String[] args) { ComputerFactory computerFactory = new LGComputerFactory(); computerFactory.createKeyBoard(); computerFactory.createMouse(); } } // LGKeyBoard 생성 // LGMouse 생성 ==================.. 2023. 11. 8. 자바(JAVA) - 템플릿 메서드(Template Method) 패턴 1. 의도 부모 클래스에서 알고리즘의 골격을 정의하지만, 해당 알고리즘의 구조를 변경하지 않고 자식 클래스들이 알고리즘의 특정 단계들을 오버라이드(재정의)할 수 있도록 한다. 2. 용도 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화 할 때 유용하다. 동일한 기능을 상위 클래스에서 정의하면서 확장/변화가 필요한 부분만 서브 클래스에서 구현한다. 3. UML 4. 구현 예시) 커피 만들기 아이스 아메리카노 아이스 라떼 1. 물을 끓인다. 2. 끓는 물에 에스프레소를 넣는다. 3. 얼음을 넣는다. 4. 시럽을 넣는다. 1. 물을 끓인다. 2. 끓는 물에 에스프레소를 넣는다. 3. 얼음을 넣는다. 4. 우유를 넣는다. 1 ~ 3번의 알고리즘이 동일하다. 패턴 적용 전 pu.. 2023. 10. 13. 자바(JAVA) - 싱글톤(Singleton) 패턴 1. 의도 클래스의 개체 생성을 하나의 인스턴스로만 제한합니다. 2. 용도 단 하나의 유일한 객체를 만들기 위해서 사용합니다. 즉, 해당 인스턴스가 필요할 때 새로운 인스턴스를 만들지 않고 기존의 인스턴스를 가져와 활용하는 방법입니다. 예를 들어 파일에 환경설정(동적으로 변경되지 않음)정보가 있을 때, Singleton 패턴을 적용하지 않으면 필요 시 매번 객체를 생성하고 로드하는 비용이 발생합니다. 반면에 Singleton 패턴을 적용하면 최초 한번만 해당 객체를 로드하고 이후에는 로드한 객체를 사용할 수 있습니다. 3. UML 4. 구현 - synchronized 이용 public class Settings { // 1 - 인스턴스 뽑을 때마다 동기화 하기 때문에 성능이슈 생길 수 있음 private.. 2023. 10. 12. 이전 1 다음