✏️ 스터디 모음집
-
디자인 패턴 스터디 기록 (5) - 팩토리 패턴, 의존성 역전✏️ 스터디 모음집/디자인 패턴 스터디 2022. 11. 2.
4. 객체지향 팩토리 패턴 이번장에서는 최대한 느슨한 결합으로 객체지향 디자인을 하는게 목표인 장입니다. 4-1. Simple Factory 예제 1) Pizza orderPizza() { Pizza pizza = new Pizza(); /* 이부분 */ *if(type.equals("cheese")) { pizza = new CheesePizza(); } else if (type.equals("greek")) { pizza = new GreekPizza(); } else if (type.equals("pepperoni")) { pizza = new PepperoniPizza(); }* pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pi..
-
디자인 패턴 스터디 기록 (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)..
-
디자인 패턴 스터디 기록 (3) - 객체 간의 강한 결합 VS 느슨한 결합✏️ 스터디 모음집/디자인 패턴 스터디 2022. 10. 27.
강한 결합 VS 느슨한 결합 이것을 이해하기 전에 먼저 객체간의 강한 결합에 속하는 상속(= is-a 관계) 을 보자! public class Lotto { protected List lottoNumbers; public Lotto(List lottoNumbers) { this.lottoNumbers = new ArrayList(lottoNumbers); } public boolean contains(Integer integer) { return this.lottoNumbers.contains(integer); } ... } public class WinningLotto extends Lotto { private final BonusBall bonusBall; public WinningLotto(List..
-
디자인 패턴 스터디 기록 (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/