Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 클린코드
- iOS프로그래밍
- 네이밍
- Swfit
- 고차함수
- Solid
- 의도
- 함수형프로그래밍
- 부스트코스
- 클린소프트웨어
- CleanCode
- IOS
- fp
- POP
- 아이폰프로그래밍
- 개발
- 이름
- DesignPattern
- protocol
- 함수형패러다임
- 인터페이스
- 문법
- 의존성
- 객체지향프로그래밍
- 디자인패턴
- interface
- SWIFT
- OOP
- 협업
- 개발자
Archives
- Today
- Total
밤에 쓴 코드
Design Pattern ) 디자인패턴이란? 본문
디자인패턴
기존 환경내에서 반복적으로 일어나는 문제들을 설명한 후 그 문제들에 대한 해법의 핵심을 설명 , 재사용 할수 있게 하는 패턴
기대효과
공통적인 설계자들의 어휘의 수준을 높여준다.
- 논의에 있어서 대화의 많은 영역을 추상화하여 더 간결하게 표현할 수 있어서 , 더욱 지적 대화가 가능하다.
- 적은 단어로 많은 내용을 내포하여 의도를 제대로 전달 할 수 있다.
- 디자인패턴을 인용한 대화 - 객체의 이동하는 동작에 대해서는 스트래티지패턴이 적절하겠네요.
- 객체의 이동을 표현하기 위해서는 이동하는 동작을 정의한 인터페이스를 정의하고 , 해당 인터페이스를 구체화한 클래스를 추상화되어있는 인터페이스에 합성시키고 인터페이스에 정의된 메소드외에는 은닉하고, 동적으로 수정할 수 있게 프로그래밍하면 적절하겠네요.
시스템의 문서화
- 시스템을 문서화함에 있어서 , 패턴을 명시해두면 , 패턴을 아는 설계자는 코드를 일일히 분석하는 수고를 덜고 , 쉽게 이해할 수 있다.
학습의 보조 도구
- 주어진 문제에 대한 일반적인 해결책과 , 상황 , 그리고 왜? 사용해야하는 지 를 문서화 해둠으로 많은 공부를 할 수있다.
기존방법에 대한 보조 역할
- 객체 , 상속 ,다형성, 캡슐화 , 추상화 - 이 와 같은 소프트웨어를 설계할 때 고려해야할 여러 기법을 올바르게 사용하는 좋은 표본이다.
리팩토링에 용이
- 소프트웨어 설계는 일반적으로 *프로토타이핑 , 확장 , 통합 * 단계로 나뉜다.
- 프로토타이핑 - 초기 요구사항을 만족 , 빠른 시제품화 —> 체계적 구현이 아니다, 화이트박스 재사용 ( 상속 )의 형태
- 확장. 통합 - 소프트웨어가 성숙기에 들어가면서 , 지속적인 추가 요구사항이 생기고 그에따른 기존코드의 수정이 불가피하다. 추가적인 요구사항을 계속적으로 받아들이기 위해서는, 블랙박스 재사용(객체합성,인터페이스) 의 형태로 재구성하는 것이 좋다.
- 초기 요구사항에 맞게 설계를 하는데에 있어서는 리팩토링을 염두한 설계가 어렵다 .
- 기존 디자인 패턴들은 계속적인 리팩토링 결과물에서 파생된 패턴이므로 , 초기에 디자인패턴을 적용하면 확장에 대한 리팩토링이 비교적 용이하다.
- 소프트웨어 설계는 일반적으로 *프로토타이핑 , 확장 , 통합 * 단계로 나뉜다.
'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