Work & Programming/etc

[LinkedIn Learning] Programming Foundations: Design Patterns

자전거통학 2022. 1. 31. 07:35

볼 때 마다 그래 그런거였지, 싶었던 패턴들, 

특히 이 강의가 좋은 설명과 함께 예시가 잘 되어 있어 스크린샷 몇개를 가져와 본다. 

 

Strategy Pattern 

> 특정 캐릭터 클래스 내에서의 특정 스킬 추가 시스템 구현 시

> Unity 엔진의 object 의 기능/component 추가 시

> 단순 기능을 가진 특정 장르의 게임(슬롯 머신 등)에서 코어는 건드리지 않고 머신별로 특정 기능을 두고자 할 때 

Unity component를 attach 하는 방법과 유사하다. 

새로운 기능 추가 시 기존 코드를 변경시킬 필요가 없다. 

확장 및 추가에 용이하다. 

 

상속보다 기능 조합에 의한 설계를 우선하라. 

 

 

Adapter Pattern 

Client와 Adaptee class는 중간에 adapter가 있는 지 조차 모른다. 캬.

 

Observer Pattern

> 노티/메시징 시스템

메시지 시스템
Observer가 누군지 알 필요도 없다. 

 

 

Decorator Pattern

객체 자체의 수정 대신 확장을 통해 기능 변경/추가를 시도하라.

 

 

Coffee class 예제

 

 

Iterator Pattern

클래스를 짬뽕으로 만들지 마라

 

 

Factory Method Pattern

 > 각 플랫폼에 따른 적절한 기능을 가진 각각의 객체를 생성할 때

 

 

 

어쨌든 핵심은, 

 

코드 중복을 최대한 피하면서 수정에 의한 파급효과를 최소화 하는 것 이지 않나 싶다. 

그 과정속에서 상속도 있고 구성 변화에 의한 의존/결합도 있고 그러는 듯. 

 

 

전에 공부하면서 여러번 보기도 하고 사용도 해 봤지만, 수박 겉 햝기가 아니였다고 말하기 힘들다. 

 

이 강의를 보면서 더 이해가 잘 되었던 부분이 분명히 있었지 싶다. 

동시에 내가 코드를 설계하면서 늘 느꼈던 비었던 부분이나 방향성에 대한 설정에 빛이 내리는 것 같은 느낌. 

 

늘 느끼지만, 뭐든 다 때가 있는 것 같다. 

 

이제는 내가 이걸 좀 제대로 이해할 때가 된 것 같다.