패턴
-
[C#] Decorator Pattern프로그래밍/Design Pattern 2020. 11. 6. 13:47
Decorator Pattern 데코레이터 패턴이란 객체의 결합을 통해 기능을 동적으로 유연하게 확장 할 수 있도록 해주는 패턴이다. 즉, 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 각 추가 기능을 Decorator 클래스로 정의 한 후 필요한 Decorator 객체를 조합함으로써 추가 기능의 조합을 설계 하는 방식이다. 커피를 예로 들어보자. 커피에는 카페라떼, 에스프레소, 돌체라떼 등등 수많은 종류가 있다. 커피 가격을 계산하는 프로그램을 만들려고 할때, 모든 종류의 커피객체를 만드는 것은 매우 비효율적이다. 이러한 경우에 사용하는 것이 바로 데코레이터 패턴이다. 커피는 종류는 다양하지만 결국 원두에 어떤 첨가물을 넣느냐에 차이다. 이때 우리는 원두를 Component, 첨가물을 Deco..
-
[C#] Strategy Pattern프로그래밍/Design Pattern 2020. 10. 23. 15:12
전략 패턴 ( Strategy Pattern ) 최대한 간략하게 설명하자면 대부분의 메서드와 클래스를 모듈화 해서 실제로 사용할 때는 마치 부품을 조립해서 사용할 수 있도록 만드는 것이 전략패턴이 되겠습니다. Worst 와 Best 의 경우를 살펴보면 이해가 편합니다. 자동차 공정을 예시로 들어봅시다. 고객1은 모든 옵션에서 1번 옵션을 선택하고 고객2는 2번 옵션을 선택했습니다. 이 경우 하드 코딩을 한다고 가정했을때 아래와 같은 구조가 나옵니다. 고객 마다 클래스를 만들고 클래스안에 모든 메서드를 새로 작성하여 때려박는 방식이죠. 이러한 하드코딩의 장단점은 분명합니다. 장점 : 구현이 쉽고 빠르다. 단점 : 유지보수가 어렵다. 그래서 우리는 이러한 경우전략패턴을 사용합니다. 모든 모듈을 모듈화 하고 ..
-
[Spring] 싱글톤 패턴프로그래밍/Spring 2020. 3. 20. 22:06
싱글톤 패턴 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 인스턴스를 만들어 사용하는 디자인패턴이다. 따라서 Main 파일에서 여러번 생성자가 호출되더라도 결국 하나의 객체(Bean)에 접근하게 되는 것이다. 싱글톤 패턴을 쓰는 이유 하나의 고정된 메모리 영역을 두고 인스턴스를 뽑아서 사용하기 때문에 메모리 낭비가 적다. 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스여서 데이터공유가 쉽다. 싱글톤 패턴의 문제점 너무 많은 인스턴스가 생기면 결합도가 높아져 "개방-폐쇄 원칙" 을 위배하게 된다. Spring 으로 구현한 메인클래스를 예로 들어보자. 프로토 타입 패턴 싱글톤 패턴과 정반대 개념으로 각각의 객체를 메모리에 할당하여 사용하는 디자인 기법이..