본문 바로가기

Design Patterns

Command Pattern 먼저 이 글은 영문 위키의 글을 번역한 글임을 알려드립니다. 영어 실력이 부족한 관계로 오역이 있을 수도 있습니다. 원문 주소 : http://en.wikipedia.org/wiki/Command_pattern Behavioral pattern - Command Pattern 객체 지향 프로그래밍(object-oriented programming)에서 command pattern(이하 커맨드 패턴)은 나중에 호출할 메서드를 위한 모든 정보를 대표(represent)하고 캡슐화(encapsulate)하는 디자인 패턴(design pattern)이다. 이 정보에는 메서드 이름, 메서드를 소유하고 있는 객체 그리고 메서드 인자에 필요한 값들을 포함하고 있다. 커맨드 패턴과 항상 연관되는 세가지 조건은 클라이언.. 더보기
Chain-of-responsibility pattern 먼저 이 글은 영문 위키의 글을 번역한 글임을 알려드립니다. 영어 실력이 부족한 관계로 오역이 있을 수도 있습니다. 원문 주소 : http://en.wikipedia.org/wiki/Chain-of-responsibility_pattern 행위 패턴 - Chain-of-responsibility 객체지향 프로그래밍(Object Oriented Design)에서 chain-of-responsibility 패턴은 command objects의 소스와 일련의 processing objects로 구성되는 디자인 패턴이다. 각각의 processing object는 그것이 다룰 수 있는 command objects의 타입을 정의하는 로직을 포함한다.; 나머지 것들은 체인(chain)의 다음processing obj.. 더보기
Proxy pattern (프록시 패턴) 먼저 이 글은 영문 위키의 글을 번역한 글임을 알려드립니다. 영어 실력이 부족한 관계로 오역이 있을 수 있습니다. 원문 주소 : http://en.wikipedia.org/wiki/Proxy_pattern 구조적 패턴 - 프록시 패턴 컴퓨터 프로그래밍(computer programming)에서 프록시 패턴은 소프트웨어 디자인 패턴(software design pattern) 중 하나이다. 가장 일반적인 형태의 프록시는 뭔가 다른 것의 인터페이스로 동작하는 클래스의 형태이다. 프록시는 어떤 인터페이스든지 가능하다. : 네트웍 연결, 메모리의 큰 객체, 파일, 또는 비용이 많이 들거나 복제하기 거의 불가능한 자원. 프록시 패턴의 잘 알려진 예는 참조 카운팅 포인터(reference counting point.. 더보기
Flyweight pattern (플라이웨이트 패턴) 먼저 이 글은 영문 위키의 글을 번역한 글임을 알려드립니다. 영어 실력이 부족한 관계로 오역이 있을 수도 있습니다. 원문 주소 : http://en.wikipedia.org/wiki/Flyweight_pattern 구조적 패턴 - 플라이웨이트 패턴 컴퓨터 프로그래밍에서 플라이웨이트는 소프트웨어 디자인 패턴 중 하나이다. 플라이웨이트는 가능한 많은 데이터는 다른 유사한 객체들과 공유함으로써 메모리 사용을 최소화하는 객체이다. ; 이는 어떤 단순 반복되는 표현(representation)이 받아들일 수 없을 정도의 메모리를 사용할 때 객체를 수없이 많이 사용하는 방법이다. 종종 객체 상태의 일부분은 공유될 수 있고, 이를 외부 자료구조(data structures)에 두고, 사용될 때에 플라이웨이트 객체에 .. 더보기
Facade pattern (퍼사드 패턴) 먼저 이 글은 영문 위키의 글을 번역한 글임을 알려드립니다. 영어 실력이 부족한 관계로 오역이 있을 수도 있습니다. 원문 주소 : http://en.wikipedia.org/wiki/Facade_pattern 구조적 패턴 - 퍼사드 패턴 퍼사드 패턴은 객체 지향 프로그래밍에서 종종 사용되는 소프트웨어 디자인 패턴이다. 그 이름은 건축학의 퍼사드(전면, facade)에서 유추되었다. 퍼사드는 많은 양의 코드를 단순화된 인터페이스로 제공하는 객체이다. (예를들면 클래스 라이브러리가 있다.) 퍼사드는 다음과 같은 것들을 할 수 있다. 퍼사드는 공통적인 작업(tasks)에 대해 편리한 메서드를 가지기 때문에, 더 사용하기 쉽고, 이해하기 쉽고, 테스트하기 쉽게 소프트웨어 라이브러리를 만들 수 있다. 같은 이유로.. 더보기
Decorator Pattern (데코레이터 패턴) 먼저 이글은 영문 위키의 글을 번역한 글임을 알려드립니다.영어 실력이 부족한 관계로 오역이 있을 수도 있습니다.원문 주소 : http://en.wikipedia.org/wiki/Decorator_pattern 구조적 패턴 - 데코레이터 패턴 객체 지향 프로그래밍에서 데코레이터 패턴은 이미 존재하는 객체에 동적으로 행위(동작, behaviour)를 추가할 수 있도록 하는 디자인 패턴이다. 도입 Introduction 데코레이터 패턴은 런타임에 특정 객체의 기능을 확장하는데 사용될 수 있는데, 이 때 같은 클래스의 다른 객체에는 무관하게 기능을 확장할 수 있고, 이는 기초작업이 설계할 때 이미 완료되었을 때 가능한 일이다. 이는 원래(original) 클래스를 감싸는 새로운 데코레이터 클래스를 설계함으로써 .. 더보기
Composite Pattern (콤포짓 패턴) 먼저 이 글은 영문위키의 글을 번역한 글임을 알려드립니다. 영어 실력이 부족한 관계로 오역이 있을 수도 있습니다. 원문 주소 : http://en.wikipedia.org/wiki/Composite_pattern 구조적 패턴 - 콤포짓 패턴 소프트웨어 공학에서 콤포짓 패턴은 분할하는(partitioning) 디자인 패턴이다. (왜 partitioning이라는 단어가 나왔는지 잘 이해가 안되네요.;;) 콤포짓 패턴은 객체 그룹이 단일 객체와 같이 취급되도록 한다. 컴포짓의 목적(의도, intent)은 객체들을 트리(tree) 구조로 "구성(compose)"하여 부분-전체 구조(part-whole hierarchies)를 표현하기 위함이다. 콤포짓 패턴을 구현하는 것은 단일 객체(individual obje.. 더보기
Bridge pattern (브릿지 패턴) 먼저 이 글은 영문 위키의 글을 번역한 것임을 알려드립니다. 영어 실력이 부족한 관계로 오역이 있을 수도 있습니다. 원문 주소 : http://en.wikipedia.org/wiki/Bridge_pattern 구조적 패턴 - 브릿지 패턴 브릿지 패턴은 소프트웨어 공학에서 사용되는 디자인 패턴인데, 이는 "구현(implementation)으로부터 추상(abstraction) 레이어를 분리하여 이 둘이 서로 독립적으로 변화할 수 있도록 한다." 브릿지는 캡슐화(encapsulation), 집합(aggregation)을 사용하고 또한 다른 클래스들로 책임을 분리시키기 위해 상속(inheritance)를 사용할 수 있다. 어떤 클래스가 자주 바뀐다면(varies), 객체 지향 프로그래밍의 특징들은 아주 유용해질.. 더보기
Adapter Pattern (어댑터 패턴) 먼저 이 글은 영문 위키의 글을 번역한 글임을 알려드립니다. 영어 실력이 부족한 관계로 오역이 있을 수 있습니다.^^; 원문 주소 : http://en.wikipedia.org/wiki/Adapter_pattern 구조 패턴 - 어댑터(Apapter) 컴퓨터 프로그래밍에서 어댑터 패턴은(종종 wrapper pattern이라고 언급되기도 하고, 더 간단히 wrapper라고 불리기도 한다.) 한 클래스의 인터페이스를 호환 가능한 다른 인터페이스로 변환시키는 디자인 패턴이다. 호환되지 않는 인터페이스때문에 일반적인 방법으로는 같이 사용할 수 없는 클래스들을 어댑터 패턴을 이용하면 같이 사용할 수 있다. 이는 클라이언트 코드에게 원래 클래스의 인터페이스를 노출시키는 대신에 어댑터의 인터페이스를 노출시킴으로써 가.. 더보기
Singleton pattern(싱글톤) 먼저 이 글은 영문 위키의 글을 번역한 글임을 알려드립니다. 영어 실력이 부족한 관계로 오역이 있을 수도 있으니 이해해주세요^^; 원문 주소 : http://en.wikipedia.org/wiki/Singleton_pattern 생성 패턴 - 싱글톤 소프트웨어 공학에서 싱글톤 패턴은 클래스의 인스턴스화를 하나의 객체로 제한을 둠으로써 싱글톤의 수학적 컨셉(수학에 싱글톤이라는게 있나 보군요. 참고 : http://en.wikipedia.org/wiki/Singleton_(mathematics))을 구현한 디자인 패턴이다. 이 패턴은 시스템에 걸쳐 딱 하나의 객체가 필요할 때에 유용하다. 이 컨셉은 다음과 같은 시스템에서 일반적으로 사용된다. 1. 오직 하나의 객체가 존재하는 것이 더 효과적일 때 2. 일정.. 더보기