디자인패턴
-
디자인 패턴 스터디 기록 (7) - 복합 패턴과 MVC✏️ 스터디 모음집/디자인 패턴 스터디 2022. 12. 12.
복합 패턴의 필요성(feat. 오리 시뮬레이션 게임 만들기) 🐥 작고 귀여운 오리 시뮬레이터 public interface Quackable{ public void quack(); } void simulate(){ Quackable mallardDuck = new MallardDuck(); Quackable duckCall = new DuckCall(); Quackable rubberDuck = new rubberDuck(); simulate(mallardDuck); simulate(duckCall); simulate(rubberDuck); } void simulate(Quackable duck){ duck.quack(); //어떤 오리든 quack()을 호출해서 테스트 가능(다형성) } 📢 거위용 시뮬..
-
디자인 패턴 스터디 기록 (4) - 데코레이터 패턴✏️ 스터디 모음집/디자인 패턴 스터디 2022. 11. 2.
데코레이터 패턴 코드를 직접 수정하지 않고 코드를 확장하는 기법. 주로 특정한 로직에 대한 전처리, 후처리가 계속해서 반복되는 경우 이를 재사용 하는 목적으로 사용된다. 예를 들어 백엔드에서 REST API를 작성하려고 할때, HTTP Method를 엔드포인트 별로 다르게 설정해주고 싶다면, 매번 엔드포인트를 작성 할 때마다 어떠한 HTTP Method로 요청 되었는 지 확인하는 로직이 필요할 것이다. 이런 경우 메소드 데코레이터를 사용하여 전처리 과정을 재사용 할 수 있다. from django.views.decorators.http import require_http_methods @require_http_methods(["GET", "POST"]) # HERE! def my_view(request)..
-
디자인 패턴 스터디 기록 (2) - 옵저버 패턴✏️ 스터디 모음집/디자인 패턴 스터디 2022. 10. 27.
옵저버 패턴이란? 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고, 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의하는 방식 옵저버 패턴의 구조 Subject 객체 Subject가 알고 있는 것(멤버 변수, 프로퍼티) → Observer들이 관심있어하는 타깃 인 상태값을 가지고 있음 → Observer들을 저장 할 컨테이너를 가지고 있음 Subject 하는 일(멤버 함수, 메소드) → Observer를 컨테이너에 추가 → Observer를 컨테이너에 삭제 → 상태값이 바뀌었을때 컨테이너를 순회하며 등록된 옵저버들에게 알리기 → 상태값에 대한 getter와 setter가 있을 수 있다. Observer 객체 Observer가 알고 있는 것(멤버 변수, 프로퍼티) → 없다. O..
-
디자인 패턴 스터디 기록 (1)✏️ 스터디 모음집/디자인 패턴 스터디 2022. 10. 27.
이전에 사내에서 진행 했던 클린코드 스터디에서 처음 접했 던 어댑터 패턴을 실무에도 적용해 보면서 다음에는 디자인 패턴에 대해 더 공부하면 좋겠다는 생각이 들었고 팀원들에게 디자인 패턴 스터디를 제안했다. 스터디는 헤드퍼스트 디자인 패턴 책을 메인으로, 자바스크립트 디자인 패턴책을 부교재로 정해 매주 2개의 패턴을 알아가는 식으로 진행하기로 했다. 스터디를 진행한다는 소식에 다른 팀에서 게임을 개발하시던 개발자 분들도 최근 게임에 적용할 디자인 패턴을 공부 중이셨다고 스터디에 함께 합류 하기로 했다! 🎉 그러면서 아래 사이트를 추천해 주셨다! 역시 사람이 많이 모여야 여러 정보가 쌓이는것 같다. 앞으로의 스터디가 너무 기대 된다. https://www.patterns.dev/