분류 전체보기(688)
-
RTP Session 1. Replace Constructors with Creation Methods
Replace Constructors with Creation Methods 하지만, 컴퓨터 생성자를 사용하면 둘중 하나만 구입하는 경우는 만들수가 없습니다. 왜냐면 사운드 카드를 추가하는 경우와 그래픽 카드를 추가하는 경우에 생성자 오버로딩의 원칙(타입과 갯수가 다른 경우)에 위배되기 때문입니다. 따라서 컴파일 에러가 발생합니다. 그럼 이런 경우에는 어떻게 해야될까요?? 참으로 난감한 일이 아닐 수 없습니다!! 책에 이런 내용이 있습니다. 이게 키워드가 될 수 있을까요? 어 떤 클래스의 인스턴스를 생성할 때 그것이 제공하는 여러 생성자 중 어떤 것을 호출해야 할지 결정하기가 어렵다면, 인스턴스를 생성해 리턴하는 생성 메서드(Creation Method)로 각 생성자를 대체하여 그 용도가 명확히 드러나도..
2007.02.09 -
RTP Session 1. Chain Constructors
RTP 4, 5장에서는 어떤 방식으로 세션을 나누어 놓았고, 어떤 방식으로 패턴을 활용한 리팩토링에 접근하는지 전반적인 책을 보는 방법에 대해서 정리를 해 놓았고, 그래서 4장, 5장에 대한 정리는 하지 않았습니다. 먼저 세션은 총 21개로 되어있습니다. 그중에 첫 세션은 Replace Constructors with Creation Methods (생성 메소드로 생성자를 대체하기), Chain Constructors (연쇄 생성자) 입니다. 공부를 하던 도중에 순서가 연쇄 생성자 부터 하는 것이 좋겠다고 생각이 되어서 먼저 연쇄 생성자를 다루도록 하겠습니다. Chain Constructors public class Computer { private int cost; private String mainB..
2007.02.09 -
Observer Pattern ③ 정리
옵저버 패턴에서는 느슨한 결합(Loose Coupling)이라는 객체 디자인을 제공합니다. 그럼 느슨하게 결합 되어 있다는 이야기가 무슨 이야기가 될까요?? 책에는 상호작용을 하지만 서로간에 대해 서로 잘 모른다는 것을 의미 한다고 합니다. 말이 너무 어려워서 만든 소스코드를 보면서 이해해 보도록 하겠습니다. 몬스터(주제)는 플레이어에 대해서 아는 정보라고는 인터페이스 정보 뿐입니다. public void notifyPlayer() { for (int i = 0; i < list.size(); i++) { Player player = (Player) list.get(i); player.update(weakness, frenzy); } } 이처럼 플레이어를 구현한 객체에 대한 정보 없이 단순히 인터페이스에..
2007.02.06 -
2. 6. 산희형, 진자누나랑 점심식사
오랜만에 만난 두분, 산희형은 머리가 더 멋있어 졌어요 ㅋㅋ 진자누나가 말한거 처럼.. 진짜 더 디자이너 다워졌다고나 할까용? ㅋㅋㅋ 진자누나는 여전히 카메라 피하는건 여건하시공 ㅋㅋㅋ 이건 진자누나가 찍어준 사진.. ㅋㅋㅋ 빵먹는거네 -ㅅ-;; 이건 우리집 개새.. 아까부터 이러고 있음.. -_-;; 발져려 ㅠㅠ
2007.02.06 -
Observer Pattern ② 패턴 활용 예제
먼저 지난 Strategy Pattern 예제는 스타크래프트로 만들었는데 이번에는 월드 오브 워크래프트를 이용해서 한번 만들어 보았습니다. 게임을 통해서 무언가 공부를 한다는건 재미있고 또 이해하는데 많은 도움이 되는것 같습니다. 먼저 옵저버 패턴에서의 Subject(주제)가 되는 것은 몬스터라고 설정을 했습니다. 몬스터를 잡기 위해서는 혼자보다는 파티 구성을 해서 잡기 때문에 파티원 하나하나를 옵저버로 보고, 몬스터의 광포화 상태와 약점의 속성이 바뀔때 마다 플레이어의 반응이 달라지도록 구현을 했습니다. 일단 몬스터라는 클래스의 소스코드를 살펴보시겠습니다. package designPattern.Observer; import java.util.ArrayList; public class Monster i..
2007.02.06 -
Observer Pattern ① 개요
지난번 Strategy Pattern에서는 상속과 구현을 이용한 클래스 설계 후에 그것을 리팩토링 하면서 해나가면서 배우는 디자인 패턴이었다면, 이번에는 다른 방법으로 접근을 해보겠습니다. 먼저 Observer Pattern을 간단하게 그림과 함께 알아보도록 하겠습니다. 유후군 잇힝리라는 마을이 있다고 가정을 합시다. 잇힝리에 사는 현씨네 큰 아들이 장가를 간다고 이장님이 이 동네사는 현아네, 윤주네, 범석이네 식구들에게 방송으로 이 경사스러운 소식을 알렸습니다. 그렇지만 잇힝리에 살지 않는 한산이네까지는 방송이 되지 않았습니다. 옵저버 패턴은 이와 같이 동네 이장님이 동네 사람들에게 어떤 소식을 알리는 것과 같은 것을 비유해서 알고 있으면 기억하기가 쉽습니다. 보통 유식한 말로 이렇게 이야기 합니다. ..
2007.02.06