Home
동준이 블로그
Cancel

[Design Pattern] 추상 팩토리 패턴

구체적인 클래스를 지정하지 않고 관련성을 갖는 객체들의 집합을 생성하거나 서로 독립적인 객체들의 집합을 생성할 수 있는 인터페이스를 제공하는 패턴 엘레베이터 부품 업체 변경하는 문제로 예를 들어보자. 엘레베이터를 구성하는 많은 부품들 중에서 모터와 문이 있다고 하자. LG라는 회사는 LG모터와 LG문을 제공하고, 현대는 현대 모터와 현대문을 제공한다...

[Design Pattern] 템플릿 메서드 패턴

객체의 연산에는 알고리즘의 뼈대만 정의하고 각 단계에서 수행할 구체적 처리는 서브클래스 쪽으로 미룬다. 알고리즘의 구조 자체는 그대로 놔둔 채 알고리즘 각 단계를 서브 클래스에서 재정의할 수 있게 해주는 패턴 템플릿 메소드 패턴이 어떻게 적용 되는지 알기 위해 엘레베이터 제어 시스템에서 모터를 구동시키는 기능을 예로 들어 보자 현재 모터를 이용하는...

[Design Pattern] 데코레이터 패턴

데코레이터 패턴은 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 각 추가 기능을 Decorator 클래스로 정의한 후 필요한 Decorator 객체를 조합함으로써 추가 기능의 조합을 설계하는 방식 데코레이터 패턴을 이해하기 위해 예를 들어보자 네비게이션에 도로를 표시하는 기능을 생각해보자. 여기서 기본 기능은 도로를 간단한 선으로 표시하는...

[Design Pattern] 옵서버 패턴

옵서버 패턴은 객체 사이에 일 대 다의 의존 관계를 두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지받고 자동으로 갱신될 수 있게 만드는 패턴 옵서버 패턴이 언제 쓰면 유용한지 알아보기 위해 성적 출력 프로그램으로 예를 들어보자. 성적 출력 프로그램은 점수를 목록 형태로 출력하는 구조를 가지고 있다. ...

[Design Pattern] 커멘드 패턴

커맨드 패턴은 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생 시키는 클래스를 변경하지 않고 재사용하고자 할때 사용하는 패턴 🚴🏼 눌리면 특정 기능을 수행하는 버튼의 예를 들어보자 버튼을 눌렀을 때 램프의 불이 켜지는 프로그램을 개발하려면 버튼이 눌러졌음을 인식하는 Button 클래스, 불을 켜는 기능을 제공하는...

[Design Pattern] 스트래티지 패턴

스트래티지 패턴은 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. 여기에서 전략이란 문제를 해결하는 알고리즘으로 이해할 수 있다. 같은 문제를 해결하는 여러 알고리즘이 클래스 별로 캡슐화 되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴 Robot 클래스로 예를 들...

[Design Pattern] 빌더 패턴

빌더 패턴은 복잡한 객체를 생성하는 방법과 표현하는 방법을 정의하는 클래스를 별도로 분리하여 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공하는 패턴 book 클래스를 예로 들어 살펴보자 생성자의 인자가 많을 경우 일반적인 객체를 생성하는 방식은 다음과 같다. Book(Telescoping Constructor pattern) p...

[Design Pattern] 싱글톤 패턴

싱글턴 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하고 어디에서든 이 인스턴스에 접근할 수 있도록 하는 디자인 패턴 싱글턴 패턴이 왜 쓰는지 알기 위해 예를 통해 살펴보자 ex) 공통 로그 파일에 모든 사용자 계좌의 입금/출금의 발생 내역을 기록 Account, Logger 클래스 Account public class Account {...

[Design Pattern] SOLID 원칙

로버트 마틴이 주장한 5가지의 설계원칙 SRP(Single Responsbility Principle) 객체지향 설계 관점에서는 SRP에서 말하는 책임의 기본 단위는 객체를 말한다. 즉, 객체는 단 하나의 책일만 가져야 한다는 의미다. 책임이란? → 해야 하는 것, 할 수 있는것으로 객체에 책임을 할당할 때는 어떤 객체보다도 작업을 잘할 수 있...

[프로젝트] marvel_website

api 호출을 이용한 반응형 웹페이지 마블 사이트 주요 사용 기술 HTML CSS javascript 이번에 html, css ,js를 공부하면서 한번 웹사이트를 만들어보고 싶어 마침 api중에 marvel 정보를 주는 api가 있어서 마블 정보를 주는 사이트를 한번 만들어 보았다. 내가만든 마블 웹사이트 ↓ ↓ ↓ http...