ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 디자인 패턴 정리 2
    카테고리 없음 2013. 3. 15. 21:30
    반응형

    디자인 패턴을 꼭 사용할 필요가 있는가? 

    - 패턴에 얽매이다보면 내가생각하는 SW 설계를 제대로 만들어 낼수없을것이다.

    - 디자인 패턴을 꼭 사용해야 된다는, 패턴의 방식대로 꼭 사용할 필요는 없다는 것이다.

    - 패턴을 두개 이상 결합하여 사용할수도 있다.

    - 패턴을 응용만 하는것이지 , 디자인패턴은 활용하는것, 문법으로 보는것이 아니라 하나의 알고리즘으로                   봐야한다.

    참조용이지 문제의 해결을 위한 솔루션이 아니다. 즉 활용을 하는것이 맞다고 볼수있음 

    - 특징, 장점, 단점 각 패턴에 대한 심플한 패턴을 직접 작성할줄 아는데까지만 알고잇는것으로도 충분하다고 생각한다.


    디자인 패턴?

    - sw 설계에 있어 공통된 문제들에 대한 표준적인 해법

    - 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법(문제해결->유지보수,디버깅,비용,인원)

    - 특정한 상황에서 구조적인 문제를 해결하는 방안(피자가계설명: )


    + 디자인패턴을 어디서 나왔는가?

    건축설계에서 공통적인 설계 와 문제점들을 해결하기위한 공통점에서부터 출발함 

    시나리오 들을 적용시켜서 프로그램에 적용시킨것이 디자인 패턴이다.


    * 디자인패턴은 알고리즘과 유사함

    알고리즘? 특정 문제를 해결하기위한 절차나 방법

    유한한 단계에서 문제 해결

    간단 명료

    프로그램 코드로 바로 변환 가능



    + 디자인 패턴과 알고리즘

    공통점

    문제에 대한 해결 방법을 제시

    재사용이 가능

    다양한 문제에 대해서 적용이 가능


    차이점

    디자인패턴: 코드로 바로 변환 불가능

    해결에 대한 전체적인 구조를 나타냄

    알고리즘 : 코드로 바로 변환이 가능

    해결에 대한 순서도를 나타낸다.


    + 디자인 패턴의 필수 4가지 요소


    1. 패턴이름

    패턴이 전체적인 특징을 단어로 표현

    패턴 사용의 의도를 표현한다.


    2. 문제

    패턴에 사용시기에 대한 서술

    패턴을 사용하게 된 배경

    3. 해법

    구성되는 요소간의 관계를 서술

    구체적인 설명은 안함(템플릿이므로)

    클래스나 객체의 나열 방법을 제공


    4. 결과

    패턴 사용의 장단점을 서술한다.


    + 표기법: 


    의도: 어떤 문제 해결을 위해 사용하였는가?


    다른 이름 : 이패턴을 다르게 부르는 이름은?-> 존재함  왜? 이패턴이 꼭 이렇다라고 할수없기 때문이다.


    동기: 문제 해결해 나가는 과정 -> 시나리오 와 같은것..... 

    -> 이패턴을 사용하게 된 동기는 무엇이라는것,,, 


    활용성: 패턴의 어떤 상황에서 적용할수있는가?

    패턴이 문제 삼는 잘못된 설계에 대해서 

    구조 : 객체 모델링 기법을 기반으로 한 표기법

    객체간의 관계를 표현한 다이어 그램


    참여자 : 패턴을 구성하고 있는 클래스나 객체를 설명


    협력방법 : 참여자간의 협력 관계를 정의 ( 의존 참조 상속,)


    결과 : 


    예제코드

    잘알려진 사용예

    관련 패턴


    --> 디자인 패턴 종류


    생성패턴 :

    -> 객체를 생성하는 부분에 관련된 패턴

    구조패턴 :

    -> 클래스나 객체를 복합하고 합성하는 패턴

    행동패턴 :

    -> 작업의 수행과 객체 집합간의 협력 관계


    ============================================

    : 참고 :

    공통된 분모들을 먼저 한후 

    공통적으로 접근 다이나믹 캐스팅으로 접근 

    ================================================


    생성패턴의 종류:

    추상팩토리

    빌더

    팩토리 메서드

    원형

    단일체


    구조패턴종류:

    적응자

    가교

    복합체

    장식자

    퍼사드

    플라이급

    프록시

    행동패턴의 종류:

    명령 ( 애니메이션 : 미리 전환될 명령들을 미리 물고있다가 실행할 시점에서 자동으로 실행시켜준다.)

    해석자

    반복자 

    중재자 ( 중재자로써의 역활을 하는것)

    메멘토

    감시자( 기상청과 같이 감시하고 있다가 변화되어야 할것들을 변화시키는것)

    상태

    전략(바뀌는것과 바뀌지않는것을 분리한다.)

    템플릿 메서드

    방문자


    반응형
Designed by Tistory.