SW/디자인 패턴

디자인 패턴 : 정의, 범주

얇은생각 2019. 3. 30. 07:30
반응형

디자인 패턴 : 정의, 범주



디자인 패턴은 소프트웨어 개발을 위한 재사용 가능한 솔루션입니다. 이러한 템플릿은 프로그래머가 애플리케이션을 생성할 때 사용할 수 있는 템플릿 역할을 합니다. 개별 프로그래밍 언어에 특정되지 않고 다른 프로그래밍 환경에서 적용할 수 있는 사례입니다.


디자인 패턴은 언어에 의존하지 않지만 종종 객체나 클래스를 포함합니다. 따라서 일반적으로 개체 지향 프로그래밍과 관련이 있습니다. 개별 패턴은 세 가지 범주로 분류할 수 있습니다.



Creational Patterns

생성 설계 패턴은 다양한 상황에 적합한 방법을 사용하여 객체를 생성하는 방법을 설명합니다. 예를 들어, "싱글턴" 패턴은 하나의 인스턴스만 갖는 기본 클래스를 만드는 데 사용됩니다. 일반적인 예시로, 프로그램의 소스 코드에 정의된 전역 변수입니다. "Object Pool" 패턴은 필요에 따라 검색할 수 있는 개체의 "Pool"로 클래스를 만드는 데 사용됩니다. 이 기능은 캐싱 용도로 사용되는 경우가 많습니다.



Structural Patterns

구조 설계 패턴은 객체 간의 관계를 정의합니다. 예를 들어 "Private Class Data" 패턴은 특정 클래스에 대한 액세스를 제한하는 데 사용됩니다. 이렇게 하면 원치 않는 개체 수정을 방지할 수 있습니다. 반면에 "Decorator" 클래스는 런타임에 동작 및 상태를 개체에 추가할 수 있습니다. 따라서 프로그래머는 필요에 따라 개체에 클래스를 추가할 수 있는 유연성을 제공합니다. 게임 전반에 걸쳐 무기, 갑옷, 아이템 등을 축적하는 비디오 게임의 아바타도 그 예입니다. 적절한 이름을 가진 "디코레이터" 클래스는 이 프로세스에 좋은 프레임워크를 제공합니다.



Behavioral Patterns

행동 설계 패턴은 개체가 서로 통신하는 방식과 같은 개체의 동작을 설명합니다. 예를 들어 명령을 실행하는 개체를 설명하는 "Command" 패턴이 있습니다. "메멘토" 패턴은 개체의 상태를 기록하여 지정된 저장된 상태로 복원할 수 있습니다. 이 두 패턴을 함께 사용하여 프로그램에서 실행 취소 및 다시 실행 작업을 수행할 수 있습니다.



요약

이 세 가지 범주에는 프로그래머가 사용할 수 있는 몇 가지 다른 디자인 패턴이 포함되어 있습니다. 패턴이 소프트웨어 개발자에게 유용한 템플릿을 제공하지만, 특정 응용 프로그램에 대해 불필요하거나 특정하지 않다는 비판을 받기도 합니다. 따라서 설계 패턴은 프로그래밍에 유용한 도구이지만, 잘 설계된 소프트웨어 프로그램을 만들기 위해 정확히 따라야 할 필요는 없습니다.

반응형