js 디자인 패턴: 구성 패턴이란 무엇입니까? JS 조합 모드 소개
이 기사에서는 js 디자인 패턴에 대한 내용을 제공합니다. 조합 패턴이란 무엇입니까? js 조합 모드의 도입에는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
콤비네이션 모드란 무엇인가요?
정의: 1.객체를 트리 구조로 결합하여 "부분-전체" 계층 구조를 나타냅니다. 2. 조합 모드에서는 단일 개체와 결합된 개체를 일관되게 사용할 수 있습니다. 3. 객체에 몇 개의 레이어가 있는지 신경 쓸 필요가 없으며 호출할 때 루트에서만 호출하면 됩니다.
주요 솔루션: 트리 구조에서 단순한 요소와 복잡한 요소의 개념이 모호해집니다. 문제가 발생하면 클라이언트 프로그램이 이를 처리할 수 있습니다. 복잡한 요소를 단순 요소와 동일하게 처리하여 클라이언트 프로그램을 복잡한 요소의 내부 구조에서 분리합니다.
사용 시기: 1. 개체의 부분-전체 계층 구조(트리 구조)를 표현하려고 합니다. 2. 사용자가 결합된 객체와 단일 객체의 차이를 무시하고 결합된 구조의 모든 객체를 균일하게 사용하기를 원합니다.
해결 방법: 가지와 잎은 통일된 인터페이스를 구현하고, 인터페이스는 가지 내부에서 결합됩니다.
키 코드: 브랜치는 내부적으로 이 인터페이스를 결합하고 Component를 포함하는 내부 속성 List를 포함합니다.
js 조합 모드 적용 예: 1. 산술 표현식에는 피연산자, 연산자 및 다른 피연산자가 포함됩니다. 여기서 다른 연산자는 피연산자, 연산자 및 다른 피연산자일 수도 있습니다. 2. JAVA AWT 및 SWING에서는 Button과 Checkbox가 리프이고, 컨테이너가 브랜치입니다.
js 조합 모드의 장점: 1. 상위 수준 모듈 호출이 간단합니다. 2. 노드는 자유롭게 추가할 수 있습니다.
js 조합 모드의 단점: 조합 모드를 사용할 때 리프와 가지의 선언은 인터페이스가 아닌 구현 클래스이므로 종속성 반전 원칙을 위반합니다.
js 조합 모드 사용 시나리오: 트리 메뉴, 파일 및 폴더 관리와 같은 부분 및 전체 시나리오.
참고: 정의되면 구체적인 클래스입니다.
js 조합 모드 예시 - 매크로 명령
지금 우리 손에 범용 리모콘이 있다고 상상해 보세요. 집에 가서 스위치를 누르면 다음 작업이 실행됩니다.
1. TV에서 소리를 켜세요
3. 에어컨과 컴퓨터를 켜세요
const MacroCommand = function() { return { lists: [], add: function(task) { this.lists.push(task) }, excute: function() { // ①:组合对象调用这里的 excute, for (let i = 0; i < this.lists.length; i++) { this.lists[i].excute() } }, } } const command1 = MacroCommand() // 基本对象 command1.add({ excute: () => console.log('煮咖啡') // ②:基本对象调用这里的 excute, }) const command2 = MacroCommand() // 组合对象 command2.add({ excute: () => console.log('打开电视') }) command2.add({ excute: () => console.log('打开音响') }) const command3 = MacroCommand() command3.add({ excute: () => console.log('打开空调') }) command3.add({ excute: () => console.log('打开电脑') }) const macroCommand = MacroCommand() macroCommand.add(command1) macroCommand.add(command2) macroCommand.add(command3) macroCommand.excute() // 煮咖啡 // 打开电视 // 打开音响 // 打开空调 // 打开电脑
const Folder = function(folder) { this.folder = folder this.lists = [] } Folder.prototype.add = function(resource) { this.lists.push(resource) } Folder.prototype.scan = function() { console.log('开始扫描文件夹:', this.folder) for (let i = 0, folder; folder = this.lists[i++];) { folder.scan() } } const File = function(file) { this.file = file } File.prototype.add = function() { throw Error('文件下不能添加其它文件夹或文件') } File.prototype.scan = function() { console.log('开始扫描文件:', this.file) } const folder = new Folder('根文件夹') const folder1 = new Folder('JS') const folder2 = new Folder('life') const file1 = new File('深入React技术栈.pdf') const file2 = new File('JavaScript权威指南.pdf') const file3 = new File('小王子.pdf') folder1.add(file1) folder1.add(file2) folder2.add(file3) folder.add(folder1) folder.add(folder2) folder.scan() // 开始扫描文件夹: 根文件夹 // 开始扫描文件夹: JS // 开始扫描文件: 深入React技术栈.pdf // 开始扫描文件: JavaScript权威指南.pdf // 开始扫描文件夹: life // 开始扫描文件: 小王子.pdf
js 디자인 패턴: 명령 패턴이란 무엇인가요? js 명령 패턴 소개
js 디자인 패턴: 관찰자 패턴(게시-구독 패턴)이란 무엇인가요? js 관찰자 패턴 소개
js 디자인 패턴: 프록시 패턴이란 무엇입니까? js 프록시 모드 소개
위 내용은 js 디자인 패턴: 구성 패턴이란 무엇입니까? JS 조합 모드 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











JavaScript 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

이 기사는 스크립트의 성능을 크게 향상시키기위한 10 가지 간단한 단계를 간략하게 설명합니다. 이러한 기술은 간단하고 모든 기술 수준에 적용 할 수 있습니다. 계속 업데이트 : Vite와 같은 번들과 함께 NPM과 같은 패키지 관리자를 활용하여

속편은 약속 기반 Node.js ORM입니다. PostgreSQL, MySQL, MariaDB, Sqlite 및 MSSQL과 함께 사용할 수 있습니다. 이 튜토리얼에서는 웹 앱 사용자를위한 인증을 구현할 것입니다. 그리고 우리는 인기 인증 중간 인 여권을 사용할 것입니다

이 기사에서는 jQuery 라이브러리를 사용하여 간단한 사진 회전 목마를 만들도록 안내합니다. jQuery를 기반으로 구축 된 BXSLIDER 라이브러리를 사용하고 회전 목마를 설정하기위한 많은 구성 옵션을 제공합니다. 요즘 그림 회전 목마는 웹 사이트에서 필수 기능이되었습니다. 한 사진은 천 단어보다 낫습니다! 그림 회전 목마를 사용하기로 결정한 후 다음 질문은 그것을 만드는 방법입니다. 먼저 고품질 고해상도 사진을 수집해야합니다. 다음으로 HTML과 일부 JavaScript 코드를 사용하여 사진 회전 목마를 만들어야합니다. 웹에는 다양한 방식으로 회전 목마를 만드는 데 도움이되는 라이브러리가 많이 있습니다. 오픈 소스 BXSLIDER 라이브러리를 사용할 것입니다. BXSLIDER 라이브러리는 반응 형 디자인을 지원 하므로이 라이브러리로 제작 된 회전 목마는
