본문 바로가기
728x90

개발35

[Java 언어로 배우는 디자인 패턴 입문] 인스턴스 만들기 6. Prototype 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 6. Prototype - 복사해서 인스턴스 만들기 1. 목적 - 인스턴스를 생성이 아닌 생성돼 있는 인스턴스를 복사한다. 1. 비슷한 클래스를 많이 정의해야 할 경우. 클래스 복사와 변수를 통해 대체 2. 클래스로부터 인스턴스 생성이 어려울 경우 > 예를 들어 사용자가 조작하고 있던 도 중 그 순간을 인스턴스로 만들어야 할 때 3 . framework와 생성하는 인스턴스를 분리하고 싶은 경우 > 클래스 이름을 직접적으로 사용하지 않는다. 인스턴스를 만드는 메소드가 반환한 인스턴스를 인터페이스로 받는다. cf) 클래스 이름이 왜 속박인가 - 클래스를 재이용할 수 없게 된다. 인터페이스를 사용하면 다른 인스턴스를 연결하여 재사용 할 수 있다. - J.. 2021. 1. 8.
[Java 언어로 배우는 디자인 패턴 입문] 인스턴스 만들기 5. Singleton 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 5. Singleton - 인스턴스를 한 개만 만들기 1. 목적 - 문자열 "abc" 1개당 1개의 인스턴스이다. 문자열이 1000개면 1000개의 인스턴스가 만들어진다. - 컴퓨터 1개, 공통 시스템 설정 등 인스턴스가 단 한 개만 필요할 때 사용한다. 물론 new 를 1번만 쓰면 되지만 실수라는 것이 있기에 보증할 수 없다. - 방법 : 1. 생성자를 private로 선언 2. static 메소드를 통한 인스턴스 반환 - 복수의 인스턴스는 서로 영향을 미쳐 뜻하지 않은 버그가 발생할 가능성이 있다. > 스프링같은 프레임워크에서 어노테이션으로 빈 등록을 하면 싱글톤으로 생성된다. 메모리 낭비를 줄이고 혹시모를 버그를 없애기 위함이 아닐까 생각해본.. 2021. 1. 7.
[Java 언어로 배우는 디자인 패턴 입문] 하위 클래스 위임 4. Factory Method 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 4. Factory Method - 하위 클래스에서 인스턴스 작성하기 1. 목적 - 반환 인스턴스종류를 하위 클래스에서 결정 해주는 방식이다. - new를 사용해서 인스턴스를 생성하는 대신에, 인스턴스 생성 메소드를 호출해서 구체적인 클래스 이름에 의한 속박에서 상퀴 클래스를 자유롭게 만든다 > 내가 이해하기로는, 인스턴스를 인터페이스로 받으면 혹시나 클래스 이름 바뀌거나 했을 때 하나하나 바꿔주지 않아도 되는 장점이 있다. 2. 예시 (1) Factory 추상 클래스 public abstract class Factory { public final Product create(String owner) { Product p = createProduct.. 2021. 1. 7.
[Java 언어로 배우는 디자인 패턴 입문] 하위 클래스 위임 3. Template Method 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 3. Template Method - 하위 클래스에서 구체적으로 처리하기 1. 목적 - 메소드의 뼈대를 미리 만들어 두기 위해서 사용한다. > 우리가 흔히 아는 Interface와 class 관계와 비슷한 내용이다. - 장점 : 인터페이스를 선언하고 구현 하위 클래스 인스턴스를 대입해 사용 할 수 있다. ( 상위 클래스형의 변수에 하위 클래스의 종류를 특정하지 않아도 프로그램이 동작할 수 있도록 한다. : The Liskov Substitution Principle(LSP) 원칙 ) - 메소들간의 로직을 추상클래스 측에서 작성해, 공통적으로 적용할 수 있다. 2. 예제 (1) 추상 클래스 public abstract class AbstractDis.. 2021. 1. 7.
728x90