본문 바로가기

SW/디자인 패턴

싱글턴 디자인 패턴 : 정의, 개념, 구조 예시 싱글톤 디자인 패턴 의도- 클래스에 인스턴스가 하나만 있는지 확인하고 글로벌 액세스 지점을 제공합니다.- 캡슐화된 "지정한 시간에 초기화" 또는 "처음 사용시 초기화" 문제- 응용 프로그램은 하나의 개체 인스턴스만 필요합니다. 또한 지연 초기화 및 전역 액세스가 필요합니다. 토론단일 인스턴스 객체의 클래스를 생성, 초기화, 액세스 및 적용을 담당하도록 합니다. 인스턴스를 개인 정적 데이터 멤버로 선언하십시오. 모든 초기화 코드를 캡슐화하고 인스턴스에 대한 액세스를 제공하는 공개 정적 멤버 함수를 제공하십시오. 클라이언트는 단일 인스턴스에 대한 참조가 필요할 때마다 접근자 함수 (클래스 이름 및 범위 확인 연산자 사용)를 호출합니다. 다음 기준 중 세 가지가 모두 충족되는 경우에만 싱글톤을 고려해야합니다...
데코레이터 디자인 패턴 : 정의, 개념, 구조, 예시 의도- 객체에 추가적인 책임을 동적으로 부여합니다. 데코레이터는 기능 확장을 위해 서브 클래스에 대한 유연한 대안을 제공합니다.- 핵심 오브젝트를 클라이언트가 재귀적으로 랩핑하여 꾸미는 것- 즉, 선물 포장, 상자에 넣고 상자를 포장합니다. 문제런타임에 개별 객체에 동작 또는 상태를 추가하려고합니다. 정적이며 전체 클래스에 적용되므로 상속은 불가능합니다. 논의사용자 인터페이스 툴킷에서 작업 중이고 창에 테두리 및 스크롤 막대 추가를 지원한다고 가정하십시오. 상속 계층 구조를 다음과 같이 정의 할 수 있습니다. 그러나 데코레이터 패턴은 고객에게 원하는 "기능" 조합을 지정할 수있는 기능을 제공합니다. Widget* aWidget = new BorderDecorator( new HorizontalScroll..
옵저버 디자인 패턴 : 정의, 구조, 개념은 무엇일까? 의도- 개체 간의 일대다 종속성을 정의하여 하나의 개체 상태가 변경되면 모든 종속성이 자동으로 통지되고 업데이트되도록 합니다.- Subject 추상화에 코어 구성 요소를 캡슐화하며, 변수 구성 요소를 관찰자 계층에 캡슐화합니다.- Model-View-Controller의 "View" 부분입니다. 문제대규모 단일 설계는 확장성이 좋지 않으며 새로운 그래핑 또는 모니터링 요구 사항이 부과됩니다. 논의데이터 모델 또는 비즈니스 논리의 "keeper"인 개체를 정의합니다. 모든 "view" 기능을 위임하여 Observer 개체를 분리하고 구분합니다. Observer는 작성 시 Subject에 직접 등록합니다. Subject가 변경될 때마다 등록된 모든 관찰자에게 브로드캐스트되며, 각 Observer는 대상 상태..
디자인 패턴 : 스트래티지 디자인 패턴 : 정의, 구조, 예시 Strategy Design Pattern 의도 알고리즘 패밀리를 정의하고, 각각을 캡슐화하여, 상호 교환할 수 있도록 합니다. 전략을 통해 알고리즘은 알고리즘을 사용하는 클라이언트와 독립적으로 변경될 수 있습니다. 인터페이스에서 추상화를 캡처하고 구현 세부 정보를 파생 클래스에 저장합니다. 문제객체 지향 설계의 지배적인 전략 중 하나는 "open-closed 원칙"입니다. 그림에서는 기본 클래스에 인터페이스 세부 정보를 캡슐화하고 구현 세부 정보를 파생 클래스에 저장하는 방법을 보여 줍니다. 그런 다음 클라이언트는 인터페이스에 자신을 결합할 수 있으며, 힘들게 변경할 필요가 없습니다. 즉, 파생 클래스의 수가 변경될 때 영향을 주지 않으며, 파생 클래스의 구현이 변경될 때 영향을 주지 않습니다. 수년 ..
디자인 패턴 : 장점, 중요한 이유 반복적인 디자인 문제를 해결하는 데 도움이 됩니다. 즉, 디자인 패턴은 문제를 스스로 해결하는 것이 아니라 우리가 문제를 해결하는 데 도움을 줍니다. 커뮤니케이션, 학습 및 향상된 통찰력지난 10년 동안 디자인 패턴은 모든 개발자의 용어의 일부가 되었습니다. 의사소통에 정말 도움이 됩니다. 한 사람은 팀의 다른 개발자에게 "여기서 명령 패턴을 사용했습니다."라고 쉽게 말할 수 있고, 다른 개발자는 설계뿐만 아니라 그 배경의 근거를 쉽게 파악할 수 있습니다. 디자인 패턴은 프로젝트에 처음 참여했을 때 학습에 큰 도움이 됩니다. 또한 이를 통해 개발자는 애플리케이션 또는 타사 프레임워크에 대한 더 나은 통찰력을 얻을 수 있습니다. 시스템을 개체로 분해Design의 어려운 점은 적절한 개체를 찾고 시스템을 분..
디자인 패턴 : 정의, 범주 디자인 패턴은 소프트웨어 개발을 위한 재사용 가능한 솔루션입니다. 이러한 템플릿은 프로그래머가 애플리케이션을 생성할 때 사용할 수 있는 템플릿 역할을 합니다. 개별 프로그래밍 언어에 특정되지 않고 다른 프로그래밍 환경에서 적용할 수 있는 사례입니다. 디자인 패턴은 언어에 의존하지 않지만 종종 객체나 클래스를 포함합니다. 따라서 일반적으로 개체 지향 프로그래밍과 관련이 있습니다. 개별 패턴은 세 가지 범주로 분류할 수 있습니다. Creational Patterns생성 설계 패턴은 다양한 상황에 적합한 방법을 사용하여 객체를 생성하는 방법을 설명합니다. 예를 들어, "싱글턴" 패턴은 하나의 인스턴스만 갖는 기본 클래스를 만드는 데 사용됩니다. 일반적인 예시로, 프로그램의 소스 코드에 정의된 전역 변수입니다...