분류 전체보기(688)
-
2. 10. 석홍이 송별회
석홍이가 1년간 중국에 가있게 됩니다. 전역을 하고 굉장히 짧은시간동안 함께 하게 되서 서운하기도 하고.. 이제 하나 둘씩 속속 모이고 있는데, 이렇게 또 훌쩍 가버린다고 생각하니 아주 아쉬웠습니다. 이네랑 보형이랑 왔습니다. 그리고 저랑 석홍이 -ㅅ-;; 그리고 동규형.. 사진에는 없네용.. 이건 뭔지 -_-;; 신림역에서 만난 이태형!!!!! 이네랑 보형이 보내고 우연히 만나서 ㅋ 순대 얻어먹었드랬죠.. 고맙습니다 :) 자주자주 뵈었으면 좋겠어용
2007.02.14 -
Factory Method Pattern ② 팩토리를 패턴으로!
일단 객체를 생성하는 클래스라는 명목으로 팩토리 클래스에 대해서 배웠는데.. 그럼 패턴은 어디있는 것일까.. -_-; 먼저 이전에 보이던 다이어그램을 살펴보면 유닛을 생산하는(객체를 생성하는) 팩토리가 단 한개 뿐입니다. 게이트웨이에서만 유닛을 생산하지는 않죠. (스타에서 -_-;;) 게이트웨이 이 외에도 로보틱스 퍼실리티도 있고, 스타게이트도 있으니 추가를 시켜 줘야겠군요. 그러면 프로토스 유닛의 서브클래스들도 많아 지겠구요.. 일단 책에서는 팩토리 메소드 패턴을 공식적으로 이렇게 말하고 있습니다. 팩터리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만듭니다. 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브..
2007.02.12 -
Factory Method Pattern ① Simple Factory
책을 시작하면서 new에 대한 고찰이 나옵니다. 처음에 스트레티지 패턴을 배우면서 나왔던 디자인 원칙 중에 하나죠, 특정 구현보다는 인터페이스를 바탕으로 프로그래밍 한다는 원칙입니다. 하지만 new를 사용하는 것 자체가 결국은 특정 구현을 사용하는것이라는 내용입니다. 스타크래프트 좋아하시죠? 프로토스 유닛들 여러가지가 있습니다. 이걸 인퍼테이스 라고 합시다. 그러면 이 프로토스 유닛을 구현하는 구상 클래스들에는 질럿이나 드라군, 프로브, 캐리어 등등 뭐 여러가지가 있겠지요, 이렇게 구상 클래스들이 많은 경우에는 조건문을 사용해서, 특정 유닛을 생성해 줘야겠지요. 이 조건문을 사용한 부분을 변하는 부분이라고 할 수 있습니다. 특히나 객체 생성을 처리하는 클래스를 팩토리(Factory) 라고 부른다고 하는데..
2007.02.12 -
Decorator Pattern ③ 적용 및 정리
일단은 데코레이터 패턴에 대한 정의는 이렇습니다. 테코레이터 패턴에서는 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. -_-; 당췌 뭐라고 하는건지 알수가 없네요.. 역시나 말로 하는것보다는 그림으로 보면서 이해하는편이 훨씬 빠를것 같다는 생각이 듭니다. 뭔가 정의 내리는 건 책에서도 처음부터 하고 있지 않는걸 보니 정의는 언제나 그럴싸 하기때문에 온갖 어려운 미사여구로 장식되어 있기 때문에 와닿지 않는 것 같네요. 그럼 멋진말 다 뒤집어 엎고 이해하기 위해서.. 다른방법으로 접근을 합시다! 인터넷을 통해서 아래와 같은 다이어그램을 구할 수 있었습니다. 이것이 데코레이터 패턴의 일종의 모형이라고 볼수가 있는데요. ..
2007.02.12 -
Decorator Pattern ② Open Closed Principle
OCP(Open Closed Principle) 에 대해서는 Agile Java 스터디를 하면서 한번 발표한 내역이 있기 때문에 책을 보면서 그렇게 생소한 개념은 아니었습니다. 디자인 원칙중에서 가장 중요한 원칙중에 하나라고 소개하고 있는 OCP는 약간은 모순적인 개념입니다. 확장에 대해서는 열려있고, 코드 변경에 대해서는 닫혀 있다.뭔가 동시에 만족할 수 없는 조건입니다만, 실제 코드를 변경할 수 없는 상황에도 시스템을 확장할 수 있게 해주는 객체지향 기법이 있다고 합니다. -_- 헉.. 그게 바로 앞서 배웠던 옵저버 패턴이라고 합니다. 아 그렇군요.. 생각해보니 옵저버 패턴에 몬스터와 싸우는 플레이어를 추가(확장에 열려있는 경우)해주는데는 몬스터의 코드에 전혀 영향을 미치지 않았었군(변경에 닫혀있는 ..
2007.02.12 -
Decorator Pattern ① 문제점의 시작
데코레이터 패턴 공부를 하면서, 영화표를 파는 걸 한번 만들어 보자.. 생각했습니다. 일단 클래스를 만들어 봤는데요.. 개괄적인 클래스의 모습이 이러했습니다. 'ㅅ' ㅋㅋ 아주 간단합니다. 그냥 연령별로 티켓을 만들어 주면되구요.. 가격이라던가, 어떤 연령대의 티켓인지만 알수 있으면 되죠.. 굉장히 간단하구나.. 생각했는데 하나 의문점이 들었습니다. 보통 영화관에서는 카드로 할인을 해주는데.. 이런 할인 서비스를 구현하기 위해서는 어떻게 해야될까?? 생각했습니다. 또, 이런 할인이 중복되어서 할인이 되는 경우를 생각해봤습니다. -_-;; 4가지의 형태(일반, 청소년, 경로, 아이) 의 티켓 요금이 존재하고, 또 할인되는 경우가 3가지 라면.... 머릿속이 복잡합니다.. 계산을 해보니 약 32개의 클래스가..
2007.02.12