본문 바로가기

전체 글89

단일체 패턴 (Singleton Pattern) 사용의도 단 하나의 인스턴스만이 필요하고, 이를 접근하는 경우 사용합니다. 생성방식 1. Eager Initialization 바이트코드(.class파일) -> native code(JVM이 실행할 수 있는 코드) 로 변환하는 과정에서 ClassLoader 가 클래스를 로딩 할 때, Initializing 과정에서 static 변수가 할당되고, static 블록이 수행되는 것을 이용하여 구현합니다. 참고 public class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; } } 코드.. 2021. 6. 5.
원형패턴 (Prototype Pattern) 사용의도 미리 원형(Prototype) 으로 초기화 해 둔 뒤, 이를 복제해서 사용합니다. boilerplatecode 를 제거할 수 있습니다. 이를 복제해서 사용하므로써, 인스턴스화 하는 클래스를 런타임에 초기화하여 생성합니다. 미리 원형으로 초기화한다. 어떠한 객체를 미리 생성해두는 것을 말합니다. 이를 복제해서 사용한다. 생성해둔 객체를 복사하여 사용한다는 뜻입니다. 인스턴스화 하는 클래스를 런타임에 초기화하여 생성한다. 복제한 클래스들 여러개를 합성(Composition) 하여 갖고있는 인스턴스를 런타임에 생성한다는 뜻입니다. 구조 예시) 비행기의 부품을 선택하여, 완제품인 비행기를 만드는 게임 완제품인 비행기 를 만들기위해서 부품으로 엔진 날개 를 선택해야 한다고 가정합니다. @AllArgsCo.. 2021. 6. 3.
팩토리 메서드 패턴 (Factory Method Pattern) 사용의도 객체생성의 인터페이스를 제공하며, 객체의 생성은 서브클래스가 수행하도록 합니다. 장점 객체 생성에 관련된 코드와 동작 코드를 분리할 수 있습니다. 구조 예시) 전사 / 마법사 캐릭터 생성 전사 마법사 시작 체력 및 마력 100 / 100 레벨업 시 증가하는 체력 마력 20 / 10 10 / 20 차이점 레벨업 시 증가하는 체력 마력이 다른 두개의 직업이 있습니다. 추후에 두 직업간의 차이가 계속 생길 것을 대비하여, 다른 클래스를 통해 두개의 클래스를 생성합니다. 이러한 과정에서 신규캐릭터를 인스턴스화 하는 경우, 팩토리 메서드 패턴을 사용하여 이를 구성해보겠습니다. 구조 GOF 설명 our class Creator 추상클래스이며 구체클래스의 부모클래스로, Product 타입을 반환하는 팩토리메.. 2021. 5. 29.
추상팩토리 패턴 (Abstract Factory Pattern) 사용 의도 서로 관련성이 있거나, 독립적인 여러 객체를 생성하기 위한 인터페이스를 제공합니다. 아래의 설명에서는 서로 관련성이 있는 경우에 객체를 생성하는 인터페이스를 제공하는 예시를 통해 추상팩토리 패턴을 설명해보겠습니다. 예시) 화이트모드와 다크모드 개발 기획자에게 화이트모드와 다크모드의 경우에 달라지는 화면을 만들어달라는 요구를 받았습니다. 화이트모드 다크모드 배경화면의 색상이 흰색이어야 한다. 배경화면의 색상이 검은색이어야 한다. 제공되는 폰트는 BOLD 여야 하며, 크기는 10이어야한다. 제공되는 폰트는 ITALIC 이어야 하며, 크기는 12여야한다. 이를 위해 개발자 A는 아래와 같이 클래스를 구성한 뒤, 화면클래스를 반환하도록 하였습니다. 화면 클래스 (Window) 폰트 클래스 (Font).. 2021. 5. 22.