디자인패턴 간단하게 정리해뒀던 디자인패턴 가장 널리 사용되는 패턴 클래스 하나가 원하는 클래스 객체를 생성해주는 패턴 Automobile 클래스 이름을 바꾸거나 변경이 생기거나 다른 클래스로 대체해도 팩토리 클래스에 있는 create 함수만 바꾸면됨 특정 클래스에 대해 오직 하나의 인스턴스만 존재하며 모든 곳에서 그 인스턴스만 사용해야함 패턴의 특성상 어플리케이션 전체 범위에 영향을 주는 일종의 상태 정보가 생김 -> 테스트 가능성... 디자인패턴디자인패턴 GOF 대표적인 10 가지 Design patterns 코드에서 반복되는 디자인 문제를 해결하기 위해 사용자 지정할 수 있는 패턴을 미리 정해둔 것입니다. 실제로 복사하여 붙여넣을 수 있는 알고리즘과 다르게 디자인 패턴은 프로그램에 복사 할 수 없기 때문에 c++로 주로 개발하던 4명 프로그래머는 계속해서 직면하는 프로그래밍적 반복적인 문제를 해결하기 위해 다른 접근 방식을 갖는것의 생성 패턴, 객체 생성의 구조적 패턴, 서로 관련되어있는 패턴등... 디자인패턴디자인패턴 디자인패턴 _ (14)chain of Responsibility 어떤 사람에게 요구하고, 처리할 수 있으면 처리하고, 처리할 수 없으면 요구를 다른 사람에게 넘긴다. 떠넘기기=자신의 일에 집중하기 class종류 📌Trouble : 발생한 트러블을 나타내는 클래스. 트러블 번호를 가진다 📌Support : 트러블을 해결하는 추상 클래스 📌NoSupport : 트러블을 해결하는 구상 클래스 (항상 '처리하지 않는다') 📌LimitSupport : 트러블을 해... 디자인패턴디자인패턴 상태를 통해 행동을 관리하는, 상태패턴(State Pattern) 이를 상태 패턴으로 구현하게 되면 상태에 따라서 행동이 달라지도록 만들 수 있다. TV가 켜짐 : 볼륨 증가 버튼을 누르면 볼륨이 증가한다. TV가 꺼짐 : 볼륨 증가 버튼을 누르면 아무일도 일어나지 않는다. 블로그 글의 상태에 따라서, 작성중일 때는 다른 사람이 볼 수 없어야 하고, 좋아요, 댓글도 남길 수 없어야한다. 블랙잭 미션에서는 게임의 진행 상태에 따라서 구현해볼 수 있다. 게임 ... 디자인패턴디자인패턴 2022년 4월 4일 - 5 React Design Patterns 불필요한 Prop drilling 없이 표현적이고 선언적인 컴포넌트 형태이다. 컴포넌트 UI를 커스터마이징하기 좋게 만들 수 있다. SubComponent를 어떻게 지정, 배치하는냐에 따라 UI를 flexible하게 조합 할 수 있다. 2. Control Props Pattern 컴포넌트를 더 컨트롤 할 수 있다. 유저가 커스텀 로직을 추가 할 수 있음 main state가 컴포넌트 외부에 ... React디자인패턴React [디자인 패턴] Abstract Factory Creational Pattern - Abstract Factory 기본이 되는 Factory가 재료를 공급하며, 생산된 Product가 정확히 무엇인지 알지 못해도 Product의 인터페이스만 알면 조작할 수 있다. 연관 있는 제품의 집합: {Monitor + Keyboard + Mouse} Samsung{Monitor + Keyboard + Mouse} LG{Monitor + Keyboa... 디자인패턴디자인패턴 [디자인 패턴 - 🧬 구조] 🎀 Decorator Pattern 객체에 추가적인 기능을 동적으로 첨가하며, 기능 확장이 필요할 때 서브클래스 대신 쓸 수 있는 유연한 대안이 될 수 있다. 데코레이터 구조패턴은 카페를 예시로 이해하면 쉽게 이해할 수 있다. Beverage 클래스의 cost 메소드에서 if문으로 hasMilk, hasCream 등을 체크하여 옵션별 가격들을 더할 수 있다. 그리고 Beverage 클래스 상속받는 메뉴들은 아래와 같이 가격을 ... TIL디자인패턴구조패턴TIL [디자인 패턴 - 🏗👷 생성] 🏭 Factory Method Pattern 팩토리 메소드 패턴을 이해하기 위해서는 먼저 아래와 코드와 같은 신발 매장 예시를 살펴보자. ShoesStore.java 고객에게 특정 신발에 대한 주문이 들어 왔을 때 매장에서는 공장에 해당 신발 오더를 넣고 받으면 되고, 판매하는 신발이 늘어나거나 단종되면 신발 매장이 아닌 신발 공장에서 그 변화를 처리할 수 있다. ShoesStore.java ShoesStore 추상 클래스를 선언하면,... TIL생성패턴디자인패턴TIL [디자인패턴] 템플릿 메소드 패턴 템플릿 메소드 패턴 프로그램을 작성하다 보면 중복되는 코드가 생긴다. 중복을 줄이기 위해 우리는 템플릿 메소드 패턴을 유용하게 이용 할 수 있다. 템플릿 메소드 패턴은 중복되는 코드를 최소화할 때 이용할 수 있다. 상위 클래스에 중복 부분을 두고 하위 클래스에 수정,변경 될 만한 부분으로 구성한다. 탬플릿 메소드 UML 다이어그램과 특징 abstract 클래스는 공통 부분이 정의되는 클래스이... 디자인패턴디자인패턴 객체 지향과 디자인 패턴 [인투북스] 객체는 자신만의 프로시저와 데이터를 가지며, 각 객체들은 연결되어 다른 객체가 제공하는 기능을 사용할 수 있다. 위의 '추상 타입과 실제 구현의 연결' 예제 코드에서 createLogCollector() 메서드를 이용해서 알맞은 구현 클래스의 객체를 생성하는 것이 1번 방법을 사용한 것이라 볼 수 있다. 한 객체가 다른 객체를 조립해서 필드로 갖는다는 것은 기능을 사용한다는 의미로, 위에서는... 디자인패턴객체지향객체지향 [디자인패턴]팩토리 패턴 (Factory Pattern) 팩토리 패턴이란? 우리는 객체를 생성할 때 new 키워드를 이용한다. 생성하고자하는 객체는 다양한 경우, 어떠한 방식으로 설계 해야할까? 예를 들어, 피자 클래스에는 하위로 페퍼로니 피자, 고구마 피자가 있다고 하자. 피자 가게 클래스에서 이들 객체를 생성을 아래와 같이 했다고 하자. 만약, 더 많은 종류의 피자가 추가 된다면, 피자 가게 클래스의 if-else 문이 수정되어야 한다. 이는 ... 디자인패턴디자인패턴 [디자인 패턴] Strategy Pattern Behavioral Pattern - Strategy Pattern 📚 의도 동일 계열의 알고리즘군을 정의하고, 각 알고리즘을 캡슐화하며, 이들을 상호교환이 가능하도록 만듭니다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있게 합니다. (GoF) 사진사는 사진 찍기를 핸드폰으로 찍을 수 있고, 필름 카메라 혹은 폴라로이드 카메라로도 찍을 수 있다. 이처... 디자인패턴디자인패턴 [디자인패턴] 데코레이터 패턴 (Decorator Pattern) 데코레이터 패턴이란 스티커 사진의 뼈대는 기본 사진으로 시작한다. 사진은 다양한 프레임, 스티커등을 이용해서 꾸밀 수 있다. 위와 같은 경우 데코레이터 패턴을 이용하기에 적절하다. 데코레이터 패턴은 기본 틀에 새롭게 추가될 수 잇는 정보들을 따로 분리하면서, 확장하기 용이하도록 융통성을 제공한다. 데코레이터 패턴은 기본 기능에 추가 기능을 구현하는 경우, 각 기능을 클래스로 정의해 조합하여 ... 디자인패턴디자인패턴
간단하게 정리해뒀던 디자인패턴 가장 널리 사용되는 패턴 클래스 하나가 원하는 클래스 객체를 생성해주는 패턴 Automobile 클래스 이름을 바꾸거나 변경이 생기거나 다른 클래스로 대체해도 팩토리 클래스에 있는 create 함수만 바꾸면됨 특정 클래스에 대해 오직 하나의 인스턴스만 존재하며 모든 곳에서 그 인스턴스만 사용해야함 패턴의 특성상 어플리케이션 전체 범위에 영향을 주는 일종의 상태 정보가 생김 -> 테스트 가능성... 디자인패턴디자인패턴 GOF 대표적인 10 가지 Design patterns 코드에서 반복되는 디자인 문제를 해결하기 위해 사용자 지정할 수 있는 패턴을 미리 정해둔 것입니다. 실제로 복사하여 붙여넣을 수 있는 알고리즘과 다르게 디자인 패턴은 프로그램에 복사 할 수 없기 때문에 c++로 주로 개발하던 4명 프로그래머는 계속해서 직면하는 프로그래밍적 반복적인 문제를 해결하기 위해 다른 접근 방식을 갖는것의 생성 패턴, 객체 생성의 구조적 패턴, 서로 관련되어있는 패턴등... 디자인패턴디자인패턴 디자인패턴 _ (14)chain of Responsibility 어떤 사람에게 요구하고, 처리할 수 있으면 처리하고, 처리할 수 없으면 요구를 다른 사람에게 넘긴다. 떠넘기기=자신의 일에 집중하기 class종류 📌Trouble : 발생한 트러블을 나타내는 클래스. 트러블 번호를 가진다 📌Support : 트러블을 해결하는 추상 클래스 📌NoSupport : 트러블을 해결하는 구상 클래스 (항상 '처리하지 않는다') 📌LimitSupport : 트러블을 해... 디자인패턴디자인패턴 상태를 통해 행동을 관리하는, 상태패턴(State Pattern) 이를 상태 패턴으로 구현하게 되면 상태에 따라서 행동이 달라지도록 만들 수 있다. TV가 켜짐 : 볼륨 증가 버튼을 누르면 볼륨이 증가한다. TV가 꺼짐 : 볼륨 증가 버튼을 누르면 아무일도 일어나지 않는다. 블로그 글의 상태에 따라서, 작성중일 때는 다른 사람이 볼 수 없어야 하고, 좋아요, 댓글도 남길 수 없어야한다. 블랙잭 미션에서는 게임의 진행 상태에 따라서 구현해볼 수 있다. 게임 ... 디자인패턴디자인패턴 2022년 4월 4일 - 5 React Design Patterns 불필요한 Prop drilling 없이 표현적이고 선언적인 컴포넌트 형태이다. 컴포넌트 UI를 커스터마이징하기 좋게 만들 수 있다. SubComponent를 어떻게 지정, 배치하는냐에 따라 UI를 flexible하게 조합 할 수 있다. 2. Control Props Pattern 컴포넌트를 더 컨트롤 할 수 있다. 유저가 커스텀 로직을 추가 할 수 있음 main state가 컴포넌트 외부에 ... React디자인패턴React [디자인 패턴] Abstract Factory Creational Pattern - Abstract Factory 기본이 되는 Factory가 재료를 공급하며, 생산된 Product가 정확히 무엇인지 알지 못해도 Product의 인터페이스만 알면 조작할 수 있다. 연관 있는 제품의 집합: {Monitor + Keyboard + Mouse} Samsung{Monitor + Keyboard + Mouse} LG{Monitor + Keyboa... 디자인패턴디자인패턴 [디자인 패턴 - 🧬 구조] 🎀 Decorator Pattern 객체에 추가적인 기능을 동적으로 첨가하며, 기능 확장이 필요할 때 서브클래스 대신 쓸 수 있는 유연한 대안이 될 수 있다. 데코레이터 구조패턴은 카페를 예시로 이해하면 쉽게 이해할 수 있다. Beverage 클래스의 cost 메소드에서 if문으로 hasMilk, hasCream 등을 체크하여 옵션별 가격들을 더할 수 있다. 그리고 Beverage 클래스 상속받는 메뉴들은 아래와 같이 가격을 ... TIL디자인패턴구조패턴TIL [디자인 패턴 - 🏗👷 생성] 🏭 Factory Method Pattern 팩토리 메소드 패턴을 이해하기 위해서는 먼저 아래와 코드와 같은 신발 매장 예시를 살펴보자. ShoesStore.java 고객에게 특정 신발에 대한 주문이 들어 왔을 때 매장에서는 공장에 해당 신발 오더를 넣고 받으면 되고, 판매하는 신발이 늘어나거나 단종되면 신발 매장이 아닌 신발 공장에서 그 변화를 처리할 수 있다. ShoesStore.java ShoesStore 추상 클래스를 선언하면,... TIL생성패턴디자인패턴TIL [디자인패턴] 템플릿 메소드 패턴 템플릿 메소드 패턴 프로그램을 작성하다 보면 중복되는 코드가 생긴다. 중복을 줄이기 위해 우리는 템플릿 메소드 패턴을 유용하게 이용 할 수 있다. 템플릿 메소드 패턴은 중복되는 코드를 최소화할 때 이용할 수 있다. 상위 클래스에 중복 부분을 두고 하위 클래스에 수정,변경 될 만한 부분으로 구성한다. 탬플릿 메소드 UML 다이어그램과 특징 abstract 클래스는 공통 부분이 정의되는 클래스이... 디자인패턴디자인패턴 객체 지향과 디자인 패턴 [인투북스] 객체는 자신만의 프로시저와 데이터를 가지며, 각 객체들은 연결되어 다른 객체가 제공하는 기능을 사용할 수 있다. 위의 '추상 타입과 실제 구현의 연결' 예제 코드에서 createLogCollector() 메서드를 이용해서 알맞은 구현 클래스의 객체를 생성하는 것이 1번 방법을 사용한 것이라 볼 수 있다. 한 객체가 다른 객체를 조립해서 필드로 갖는다는 것은 기능을 사용한다는 의미로, 위에서는... 디자인패턴객체지향객체지향 [디자인패턴]팩토리 패턴 (Factory Pattern) 팩토리 패턴이란? 우리는 객체를 생성할 때 new 키워드를 이용한다. 생성하고자하는 객체는 다양한 경우, 어떠한 방식으로 설계 해야할까? 예를 들어, 피자 클래스에는 하위로 페퍼로니 피자, 고구마 피자가 있다고 하자. 피자 가게 클래스에서 이들 객체를 생성을 아래와 같이 했다고 하자. 만약, 더 많은 종류의 피자가 추가 된다면, 피자 가게 클래스의 if-else 문이 수정되어야 한다. 이는 ... 디자인패턴디자인패턴 [디자인 패턴] Strategy Pattern Behavioral Pattern - Strategy Pattern 📚 의도 동일 계열의 알고리즘군을 정의하고, 각 알고리즘을 캡슐화하며, 이들을 상호교환이 가능하도록 만듭니다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있게 합니다. (GoF) 사진사는 사진 찍기를 핸드폰으로 찍을 수 있고, 필름 카메라 혹은 폴라로이드 카메라로도 찍을 수 있다. 이처... 디자인패턴디자인패턴 [디자인패턴] 데코레이터 패턴 (Decorator Pattern) 데코레이터 패턴이란 스티커 사진의 뼈대는 기본 사진으로 시작한다. 사진은 다양한 프레임, 스티커등을 이용해서 꾸밀 수 있다. 위와 같은 경우 데코레이터 패턴을 이용하기에 적절하다. 데코레이터 패턴은 기본 틀에 새롭게 추가될 수 잇는 정보들을 따로 분리하면서, 확장하기 용이하도록 융통성을 제공한다. 데코레이터 패턴은 기본 기능에 추가 기능을 구현하는 경우, 각 기능을 클래스로 정의해 조합하여 ... 디자인패턴디자인패턴