JavaScript의 디자인 패턴에 대한 간략한 가이드



이 기사는 더 나은 이해를 위해 간단한 방식으로 JavaScript의 디자인 패턴에 대한 자세한 접근 방식을 제공합니다.

일반적으로 반복되는 소프트웨어 문제에 대한 고급 객체 지향 솔루션입니다. 패턴은 재사용 가능한 디자인과 개체의 상호 작용입니다. 각 패턴에는 이름이 있으며 복잡한 디자인 솔루션을 논의 할 때 어휘의 일부가됩니다.

JavaScript의 디자인 패턴은 무엇입니까?

다음과 같이 정의 할 수 있습니다. 소프트웨어 템플릿 또는 소프트웨어 애플리케이션 또는 소프트웨어 프레임 워크를 설계하는 동안 여러 인스턴스에서 발생하는 문제를 해결하기위한 설명.





빌더 디자인 패턴

이제 Gang of Four (GoF)에 대해 알아 보겠습니다.



4 인조

그만큼 23 Gang of Four (GoF) 패턴은 일반적으로 다른 모든 패턴의 기초로 간주됩니다.

자바 코드에서 해시 맵 구현

The Gang of Four (GoF) 디자인 패턴에서 :



재사용 가능한 객체 지향 소프트웨어의 요소, Addison-Wesley Professional Computing Series, by 에리히 감마, 리처드 헬름, 랄프 존슨,John Vlissides.hese 23 GoF 패턴은 일반적으로 다른 모든 패턴의 기초로 간주됩니다.세 그룹으로 분류됩니다. 창조, 구조 및 행동.

디자인 패턴의 유형

기본적으로 JavaScript에는 세 가지 유형의 디자인 패턴이 있습니다. 다음과 같습니다.

창조 패턴

초록 공장 : 이렇게하면 여러 클래스 패밀리가있는 인스턴스가 생성됩니다. 이는 구체적인 클래스를 지정하지 않고 관련되거나 종속 된 개체 인 패밀리를 만들기위한 인터페이스를 제공합니다.

빌더 : 이것은 표현과 분리 된 객체 구성입니다. 또한 복잡한 객체의 구성을 해당 표현과 분리하여 정확히 동일한 구성 프로세스를 다른 표현으로 만들 수 있습니다.

공장 방법 : 이렇게하면 여러 파생 클래스에 대한 인스턴스가 생성됩니다. 또한 개체를 만들기위한 인터페이스를 정의하지만 하위 클래스가 인스턴스화 할 클래스를 결정할 수 있도록합니다. 여기에는 클래스가 하위 클래스에 대한 인스턴스화를 지연시킬 수있는 팩토리 메서드도 있습니다.

원기: 복사 또는 복제가 가능한 완전히 초기화 된 인스턴스입니다. 특히 프로토 타입 인스턴스를 사용하여 생성 할 객체의 종류는이 프로토 타입을 복사하여 새 객체를 생성합니다.

하나씩 일어나는 것: 복사하거나 복제 할 완전히 초기화 된 인스턴스입니다.프로토 타입 인스턴스를 사용하여 만들고이 프로토 타입을 복사하여 새 객체를 만드는 것은 특정 종류의 객체입니다.

php.mysql_fetch_array

구조 패턴

어댑터: 다른 클래스의 인터페이스와 일치합니다. 또한 클래스의 인터페이스를 클라이언트가있는 인터페이스를 제외한 다른 인터페이스로 변환합니다. 어댑터를 사용하면 비 호환성 인터페이스로 인해 다른 방법으로는 불가능했던 클래스가 함께 작동 할 수 있습니다.

다리: 객체의 인터페이스와 구현을 분리합니다. 두 가지가 독립적으로 달라질 수 있도록 추상을 구현에서 분리합니다.

합성물: 트리 구조는 단순하고 복합적인 개체로 구성되며, 부분 전체 계층을 나타내는 트리 구조로 구성된 개체입니다. Composite를 사용하면 클라이언트가 개별 개체와 개체 구성을 균일하게 처리 할 수 ​​있습니다.

데코레이터 : 개체에 대한 책임을 동적으로 추가합니다. 추가 책임을 객체에 동적으로 연결합니다. 데코레이터는 기능 확장을 위해 서브 클래 싱에 대한 유연한 대안을 제공합니다.

정면: 전체 하위 시스템을 나타내고 시스템의 인터페이스 집합에 대한 통합 인터페이스를 제공하는 단일 클래스입니다. Façade는 하위 시스템을 더 쉽게 사용할 수 있도록 고급 인터페이스를 정의합니다.

플라이급 : 많은 수의 세분화 된 개체를 효율적으로 지원하기 위해 효율적인 공유에 사용되는 세분화 된 인스턴스입니다. 플라이 웨이트는 여러 컨텍스트에서 동시에 사용할 수있는 공유 객체입니다.플라이 웨이트는 또한 각 컨텍스트에서 독립적 인 개체로 작동합니다. 공유되지 않는 개체의 인스턴스와 구별 할 수 없습니다.

대리: 다른 개체를 나타내는 개체입니다. 대리 또는 자리 표시 자 개체를 제공하여 액세스를 제어합니다.

행동 패턴 :

책임 사슬 : 객체 체인간에 요청을 전달하는 방법입니다. 보낸 사람과의 결합을 피하고 둘 이상의 개체에 요청을 처리 할 수있는 기회를 제공하여 수신자에게 요청을 보냅니다. 수신 객체는 연결되어 객체가 처리 할 때까지 체인을 따라 요청을 전달합니다.

명령: 명령 요청을 객체로 캡슐화합니다. 요청을 개체로 캡슐화하여 다른 요청, 대기열 또는 로그 요청으로 클라이언트를 매개 변수화하고 실행 취소 가능한 작업을 지원할 수 있습니다.

C ++의 정렬 기능

통역사: 프로그램에 언어 요소를 포함하는 방법입니다. 언어가 주어지면 해당 표현을 사용하여 언어로 문장을 해석하는 인터프리터와 함께 문법 표현을 정의하십시오.

반복자 : 컬렉션 요소의 순차 액세스는 기본 표현을 노출하지 않고 집계 개체의 요소에 순차적으로 액세스하는 방법을 제공합니다.

중재인: 클래스 간의 통신을 단순화합니다. 개체 집합이 상호 작용하는 방식을 캡슐화하는 개체를 정의합니다. 중재인 객체가 서로를 명시 적으로 참조하지 못하도록하여 느슨한 결합을 촉진하고 상호 작용을 독립적으로 변경할 수 있습니다.

기념물: 개체의 내부 상태를 캡처하고 복원합니다. 캡슐화를 위반하지 않고 객체의 내부 상태를 캡처 및 구체화하여 나중에 객체를이 상태로 복원 할 수 있습니다.

관찰자: 여러 클래스에 대한 변경 사항을 알리는 방법입니다. 하나의 객체가 상태를 변경하면 모든 종속 항목이 자동으로 알림 및 업데이트되도록 객체 간의 일대 다 종속성을 정의합니다.

상태: 상태가 변경 될 때 객체의 동작을 변경합니다. 내부 상태가 변경 될 때 개체가 동작을 변경할 수 있도록합니다. 개체가 클래스를 변경하는 것처럼 보입니다.

전략: 클래스 내부에 알고리즘을 캡슐화하고 패밀리 알고리즘을 정의하고 각 알고리즘을 캡슐화 한 다음 상호 교환 가능하게 만듭니다. 전략을 사용하면 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있습니다.

주형: 알고리즘의 정확한 단계를 하위 클래스로 연기합니다. 작업에서 알고리즘의 골격을 정의하여 몇 가지 중요한 단계를 하위 클래스로 연기합니다. 템플릿 메서드를 사용하면 알고리즘의 구조를 변경하지 않고 알고리즘의 특정 단계를 재정의하는 하위 클래스를 만들 수 있습니다.

방문객: 변경없이 클래스에 대한 새 작업을 정의합니다. 개체 구조의 요소에 대해 수행 할 작업을 나타냅니다. 방문자를 사용하면 작동하는 요소의 클래스를 변경하지 않고 새 작업을 정의 할 수 있습니다.

이것으로 우리는이 기사의 끝으로 왔습니다. JavaScript의 디자인 패턴, 유형, 중요성 및 구현을 이해 하셨기를 바랍니다.

이제 JavaScript에서 디자인 패턴의 기본 사항을 이해 했으므로 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate 및 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념에 대해 교육하도록 설계되었습니다. .

질문이 있으십니까? 이 'JavaScript의 디자인 패턴'블로그의 댓글 섹션에 언급하시면 가능한 한 빨리 연락 드리겠습니다.