디자인패턴 4

[디자인패턴] bridge & adapter & mediator pattern

bridge pattern : 기능의 계층과 구현의 계층을 분리한다 '기능의 클래스 계층' 과 '구현의 클래스 계층' 사이에 다리를 놓는다. 클래스 계층의 두 가지 역할새로운 '기능'을 추가하고 싶을 때something|----- somethingGood|------- somethingBetter새로운 기능을 추가하고 싶을 때 클래스 계층 안에서 새로 만들려고 하는 클래스와 유사한 클래스를찾아내 하위 클래스를 만들어 기능을 추가 ps. 일반적으로 클래스 계층은 너무 깊게 하지 않는 것이 좋다 새로운 '구현'을 추가하고 싶을 때AbstractClass | ------ ConcreateClass|-------- AnotherConcreateClass 두개로 클래스 계층을 나눠두면 각각의 클래스 계층을 독립적..

backend 2007.06.13

[디자인패턴] State, Strategy Pattern

/*************************************** ***** Design Pattern 정리 - flyburi.com 버리**** ***************************************/ State Pattern - Design Pattern Problem 1. How can you change the class of an object at run-time? 2. How can you model a finite state machine using OO techniques? Example 1. 스타크래프트에서 플레이어가 테란 유닛들 중에서 마린, 벌처, 탱크에게 임의의 공격명령을 내렸을 때 자신의 상태에 따라 행위가 달라질 때 적용가능? 공격(abstract clas..

backend 2007.05.30

[디자인패턴] 1. Strategy Pattern

1. Strategy Pattern 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 알고리즘(전략,작전,책략)을 교체해서 동일한 문제를 다른 방법으로 해결하는 패턴 실행 중에 교체하는 것이 가능하다. – 다형성을 이용해서 "상속"을 이용해 프로그램을 할때의 단점1) 서브클래스의 코드 중복 부모클래스에서 메소드 fly()를 구현해 놓았다면(abstract일때) 서브 클래스에서는 fly()를 쓰지 않아야 할때 매번 안쓴다는 코드를 구현해야 한다. (불필요한 행동을 그냥 아무것도 하지 않는것으로 오버라이드 해야한다. 만약 규격이 자주 바뀌게 되면 매번 프로그램에 추가했던 부모클래스를 상속받은 서브클래스의 메소드를 모두 일일이 살펴봐야한다.)2) 실행시에 특징을 바꾸기 힘들다.3) 모..

[디자인패턴] 디자인패턴을 왜 쓰는가?

나만의 Think! 공감 안하면 말구~ 디자인패턴을 시작하며, 현업 SI에서는 아주 PM이 유능해서 업무가 밀린다거나, 전혀 애로사항이 없다면 몰라도, 요구정의와 분석, 설계하는데 많은 부분이 프로젝트 기간중에 소요가 된다. 막상 개발자들은 실제 코딩을 하는 기간은 매우 짧다. 개발자들이 무슨 죄가 있는지, 프로젝트 오픈일이 다가 올수록 개발자가 못해서 프로젝트가 길어지는양, 위에서는 억압(?)을 하며 마감일 엄수를 외친다. PM의 심정을 모르는것도 아니고, PL의 심정을 모르는 것도 아니겠지만, 개발기간이 짧아 무조건 우선 코드의 생김새보다는, 돌아가게끔만이라도 해야할 때가 있다. 이럴 때 언제 패턴을 따지며, 프로그램을 짤수있을까? 란 의문이 항상 든다.하지만, 이렇게 생각하는 사람이 나혼자 있는 것..

backend 2007.01.21