Let's reuse not only code but also software design~
Software Design Pattern(s)
- a general reusable solution to a commonly occuring problem
- not a finished design
- a description or template for how to solve a problem
- 미리 문제를 해결해본 선배들의 조언이다.
- object oriented design pattern: relationship and interactions between class or object
- 개발단계를 고려하면서 pattern을 써야한다. 어떤 언어는 pattern이 다 간단하게 구현되어있을 수도 있고 아예 실현 불가능할 수 도있다.
Adapter Pattern
- Goal: 30년간 잘돌아가고 있는두 프로그램이 있는데 호환이 안될때 프로그램을 고치지 않아야 할 때
- Details: 두개의 프로그램이 호환이 안될 때 중간에 adapter를 통해 수정하지 않고 호환시킨다.
Facade Pattern
- Goal: 문 뒤의 프로그램은 매우 복잡하고 변경가능하다. 하지만 사용자에게는 항상 똑같고 간단한 인터페이스를 제공하는 것
- Detail: object oriented programming에서 많이 쓰임, 간단한 interface 제공
- adventage
- easier to use, understand, and test
- reduce dependencies of outside code on the inner workings
- wrap a poorly-designed collection of APIs with a single well designed API
Decorator Pattern
- Goal: 객체에서 동적으로 아이템을 추가해주거나 제거해주는 것
- ex) 전투기가 별사탕먹고 무시무시한 화력으로 바뀌고 한방 얻어맞으면 아이템이 뺏기는 시스템
History of Design Pattern
- 1977 - patterns 개념 제시됨
- 1987 - 프로그래밍에 pattern을 적용
- 1994 - Design pattern이 인기를 얻고 Gang of Four라는 사람들에 의해 책으로 출간
- Code Complete: design pattern이 나오기전 가장 유명했던 책, design pattern 관련 내용을 다루었다.
Criticism about Design Pattern
- 언어가 발전하면 최신 기술들을 다 지원하게 됨 => design pattern들을 간단하게 지원해줘서 필요성이 떨어짐
- 잘못쓰면 복잡도만 증가하고 프로그램을 엉망으로 만든다.
- 업데이트가 안됐다.
책 추천
'수업 내용 정리 > 오픈소스SW개발방법및도구' 카테고리의 다른 글
13. Project Planning & Management (0) | 2023.06.14 |
---|---|
12. Opensource License (0) | 2023.06.09 |
10. Test and Enhancement (0) | 2023.06.07 |
9. Online Co-work & Eduacation (0) | 2023.06.07 |