밤에 쓴 코드

Design Pattern ) 디자인패턴이란? 본문

Design Pattern

Design Pattern ) 디자인패턴이란?

붱이🦉 2019. 4. 28. 15:42

디자인패턴

  • 기존 환경내에서 반복적으로 일어나는 문제들을 설명한 후 그 문제들에 대한 해법의 핵심을 설명 , 재사용 할수 있게 하는 패턴


기대효과

  • 공통적인 설계자들의 어휘의 수준을 높여준다.

    • 논의에 있어서 대화의 많은 영역을 추상화하여 더 간결하게 표현할 수 있어서 , 더욱 지적 대화가 가능하다.
    • 적은 단어로 많은 내용을 내포하여 의도를 제대로 전달 할 수 있다.
      • 디자인패턴을 인용한 대화 - 객체의 이동하는 동작에 대해서는 스트래티지패턴이 적절하겠네요.
      • 객체의 이동을 표현하기 위해서는 이동하는 동작을 정의한 인터페이스를 정의하고 , 해당 인터페이스를 구체화한 클래스를 추상화되어있는 인터페이스에 합성시키고 인터페이스에 정의된 메소드외에는 은닉하고, 동적으로 수정할 수 있게 프로그래밍하면 적절하겠네요.
  • 시스템의 문서화

    • 시스템을 문서화함에 있어서 , 패턴을 명시해두면 , 패턴을 아는 설계자는 코드를 일일히 분석하는 수고를 덜고 , 쉽게 이해할 수 있다.
  • 학습의 보조 도구

    • 주어진 문제에 대한 일반적인 해결책과 , 상황 , 그리고 왜? 사용해야하는 지 를 문서화 해둠으로 많은 공부를 할 수있다.
  • 기존방법에 대한 보조 역할

    • 객체 , 상속 ,다형성, 캡슐화 , 추상화 - 이 와 같은 소프트웨어를 설계할 때 고려해야할 여러 기법을 올바르게 사용하는 좋은 표본이다.
  • 리팩토링에 용이

    • 소프트웨어 설계는 일반적으로 *프로토타이핑 , 확장 , 통합 * 단계로 나뉜다.
      • 프로토타이핑 - 초기 요구사항을 만족 , 빠른 시제품화 —> 체계적 구현이 아니다, 화이트박스 재사용 ( 상속 )의 형태
      • 확장. 통합 - 소프트웨어가 성숙기에 들어가면서 , 지속적인 추가 요구사항이 생기고 그에따른 기존코드의 수정이 불가피하다. 추가적인 요구사항을 계속적으로 받아들이기 위해서는, 블랙박스 재사용(객체합성,인터페이스) 의 형태로 재구성하는 것이 좋다.
    • 초기 요구사항에 맞게 설계를 하는데에 있어서는 리팩토링을 염두한 설계가 어렵다 .
    • 기존 디자인 패턴들은 계속적인 리팩토링 결과물에서 파생된 패턴이므로 , 초기에 디자인패턴을 적용하면 확장에 대한 리팩토링이 비교적 용이하다.

'Design Pattern' 카테고리의 다른 글

Design Pattern) 싱글턴 패턴  (0) 2019.06.23
Design Pattern) 데코레이터 패턴  (0) 2019.06.07
Design Pattern) 옵저버 패턴  (0) 2019.05.03
Design Pattern) 팩토리 패턴  (0) 2019.04.29
Design Pattern) 스트래티지 패턴  (1) 2019.04.28
Comments