우아한 프로그래밍
반응형
[자바/JAVA] 디자인패턴 #6 데코레이터( Decorator) 패턴
프로그래밍/Java 2019. 1. 10. 11:21

1. 데코레이터 패턴이란? 데코레이터 패턴이란 말그대로 장식을 하는 패턴이다. 쉽게 말하자면 기본기능이 있고 그 기능에 추가적인 기능들을 수행하고자 할때 사용하면된다. 예를 들어 맥도날드 햄버거 가격을 계산해주는 시스템이 있다고 생각해보자. 맥도날드에는 다양한 메뉴들이 존재한다. 치즈버거, 빅백, 콜라, 치킨텐더, 감자튀김 등등 이러한 메뉴들의 조합에 대해서 가격을 산정하려면 과연 어떻게 구현하는게 가장 깔끔할까? 클래스 멤버변수로 각 메뉴의 가격을 두고 조합을 하는 방법이 있겠지만 추가적인 메뉴가 추가된다면 기존 클래스 변경이 불가피하다. 혹은 새로운 클래스를 만들어도 될것이다. 하지만 메뉴가 늘어나고 조합이 늘어남에 따라 추가적으로 수많은 클래스들이 생겨날 것이다. 이러한 경우 데코레이터 패턴을 한번..

[자바/JAVA] 디자인패턴 #6 빌더( Builder) 패턴
프로그래밍/Java 2019. 1. 6. 17:48

1. 빌더패턴이란? 빌더패턴이란 빌더 클래스는 인스턴스를 생성자를 통해 직접 생성하지 않고, 빌더라는 내부 클래스를 통해 간접적으로 생성하게 하는 패턴이다. 생성자가 많은 클래스가 있다면 빌더패턴을 고려해 보는 것이 좋다. 아래 나오는 고전적 방법2를 이용해도 되나 가독성의 문제를 고려하여 빌드 패턴을 고려해도 좋다. 사실 가독성은 개인차가 있는 것 같다. 굳이 시간이 없다면 빌더 패턴을 쓰지 않아도 되고 고전적 방법2를 써도된다. 2. 고전적 방법1. 점진적 생성자를 이용한 방법 public class User { private String name; private String juminNum; private int age; private int sex; public User(String name) {..

article thumbnail
[자바/JAVA] 디자인패턴 #2 템플릿메소드(TemplateMethod)
프로그래밍/Java 2016. 9. 12. 10:40

안녕하세요. 오늘은 자바의 디자인패턴중의 하나인 템플릿메소드 패턴에 대해서 알아보도록 하겠습니다. 템플릿 메소드 패턴이란 상위 클래스에서 특정한 업무 프로세스를 정의하고 하위 클래스에서 그 프로세스대로 행동하도록하는 디자인 패턴입니다. 일단 클래스 다이어그램은 아래와 같습니다. 청소 및 밥먹기 클래스가 TemplateProcess라는 인터페이스를 상속하고 그 인터페스가 가지고 있는 메소드들을 구현하고 있습니다. 단순히 메소드를 구현하는게 아니라 인터페스의 행동절차를 구현하고 있는겁니다. 쉽게 말하면 TemplateProcess를 상속받아서 이러이러한 행동을 구현해 라고 말하는 것이지요. 폴더 구조는 아래와 같습니다. 실행을 위한 Main문은 아래와 같습니다. 먼저 TemplateProcess라는 클래스를..

article thumbnail
[자바/JAVA] 디자인패턴 #1 싱글톤(Singleton)
프로그래밍/Java 2016. 7. 4. 21:32

안녕하세요. 오늘부터 자바 디자인패턴에 관해서 글을 쓰려고 합니다. 옛날 부터 관심있는 부분이었는데 제대로된 공부는 하지 못했네요. 현직개발 4년차가 되었는데도 자주 쓰는 패턴만 알고 나머지는 모르겠네요. 그래서 공부를 하는 김에 블로그에 글을 써서 공유하려고 합니다. 모두 디자인 패턴을 배워봅시다. 오늘은 디자인패턴의 시작인 싱글톤 패턴에 대해서 알아 보도록 하겠습니다. 싱글톤 패턴을 한마디로 요약하면 아래와 같습니다. "해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴" 그럼 예제를 통해서 싱글톤 패턴을 이해해 보도록 합시다. 먼저 아래와 같은 클래스를 작성합시다. Main.java 부분에 아래와 같이 코딩을 합니다. 그리고 F11을 눌러서 실행을..

반응형