웹 페이지의 스크롤을 아래로 내리지 않았는데, 미리 아래 있는 사진을 로드 할 필요는 없다. 그러면 로드하지 않은 자리에는 어떻게 처리해야할까? 사진을 직접 두지 않으려면 대리자를 두는 편이 좋을 것이다. 이러한 경우에 바로 쓰는 것이 'Proxy 패턴'이다. Prox
책임 체인 패턴이란? 아직 회사에서 정식으로 일해본 적은 없지만.. 잘 짜여진 회사에서는 자신의 역할이 확고하여 맡은 역할을 수행하고 다른 사람에게 넘기고 그 다음 사람은 자신의 일을 하고 또 다른 이에게 넘기며 일을 처리한다고 한다. 이와 같은 패턴이 책임 체인 패
게임을 플레이할 때에 우리는 수 많은 게임 캐릭터들을 볼 수 있다. 각각의 캐릭터는 아이템, 체력등 다양한 정보들을 담고 있다. 이러한 캐릭터들을 많이 생성해야할 때 우리는 어떠한 방식으로 프로그램을 설계해야할까? 플라이웨이트 패턴은 객체를 관리하는 클래스를 따로 두어
예약 프로그램을 작성한다고 상상해보자. 사용자가 예약을 하기 위한 정보를 입력값으로 넣는데, 입력하지 않는(필수적이지 않아) 값이 있을 수도 있다. 이러한 경우 객체를 어떻게 생성해야할까? 생성자를 파라미터의 입력받는 가지 수로 일일이 재정의하는 방법 말고 어떤 방법으
우리는 객체를 생성할 때 new 키워드를 이용한다. 생성하고자하는 객체는 다양한 경우, 어떠한 방식으로 설계 해야할까? 예를 들어, 피자 클래스에는 하위로 페퍼로니 피자, 고구마 피자가 있다고 하자. 피자 가게 클래스에서 이들 객체를 생성을 아래와 같이 했다고 하자.
지난 시간에 팩토리 패턴에 대해서 공부하였다. 팩토리 패턴은 객체의 생성을 '팩토리' 하는 클래스에게 책임을 맡기는 것이다. 그런데 생성해야하는 객체의 종류가 많은 경우에 각각에 대한 팩토리를 모두 생성하는 일은 복잡할 것이다.추상 팩토리 패턴은 이와 같은 경우 연관이
우리가 프로그램을 작성할 때에 List 등의 자료구조에 순차 탐색해야하는 경우가 있다. 이럴 때에 iterator 패턴을 이용하여 자료를 탐색하는 부분을 캡슐화하여 사용할 수 있도록 한다. 반복자 패턴을 이용할 경우, 자료와 자료를 이용하고자 하는 객체의 결합을 줄일
스티커 사진을 만들어주는 프로그램을 설계해야한다고 하자. 스티커 사진의 뼈대는 기본 사진으로 시작한다. 사진은 다양한 프레임, 스티커등을 이용해서 꾸밀 수 있다. 이러한 프로그램은 어떻게 설계해야할까? 위와 같은 경우 데코레이터 패턴을 이용하기에 적절하다. 데코레이터
커맨드 패턴이란 > 커맨드 패턴이란 커맨드 패턴의 특징 커맨드 패턴의 예시
동일한 객체를 생성하고 싶다. 새로운 인스턴스가 필요할 때 이를 언제든 복제하고 싶다. 이럴 때 어떻게 설계하는 것이 좋을까? 클라이언트가 복제 요청을 할 때, 다음과 같이 했다고 하자. 과연 client가 파라미터 값으로 받은 Report r이 ReportA인지 알까
워드 프로세서를 작성하다 보면 실행 취소를 할 때가 있다. 실행 취소를 구현하려면 이전의 상태에 대한 정보를 일부 저장하고 있어야한다. 이럴때에 사용하는 패턴이 메멘토 패턴이다. 메멘토 패턴이란 객체의 상태 정보를 저장하고 이를 이용하여 복원할 수 있는 패턴이다. Or
템플릿 메소드 패턴 프로그램을 작성하다 보면 중복되는 코드가 생긴다. 중복을 줄이기 위해 우리는 템플릿 메소드 패턴을 유용하게 이용 할 수 있다. >템플릿 메소드 패턴은 중복되는 코드를 최소화할 때 이용할 수 있다. 상위 클래스에 중복 부분을 두고 하위 클래스에 수정
Strategy 패턴이란?