組み合わせモード:オブジェクトのグループをツリー構造に組み合わせ、組み合わせたオブジェクトとリーフオブジェクトを統一された方法で処理し、それらの間の違いを無視します(リーフオブジェクトにも葉オブジェクトを含み、組み合わせたオブジェクトになることができるため)。コンビネーションモードのオブジェクトは、1対多くの関係にすぎず、多くのものが発生することはありません。
基本ユニット:結合されたオブジェクトには、複数の葉オブジェクトが含まれています。各基本ユニットは、別の組み合わせオブジェクトの葉オブジェクトにすることができます。フォルダーまたはファイルも他のフォルダーのコンテンツにすることができますが、フォルダーまたはファイルは同時に複数の優れたフォルダーに属することはできません。
JavaScriptにコンビネーションモードを実装する場合、組み合わせたオブジェクトとリーフオブジェクトが同じインターフェイスメソッドを確保するために、同じ葉オブジェクトのグループの操作が一貫している必要があります。
例:
//結合オブジェクトvar folder = function(name){this.name = name; this.parent = null; this.files = [];}; prototype.add = function(file){file.parent = this; if(this.files.indexof(file)========= -1){this.files.push(file);} else {console.log( '/'+file.name+'/'既に存在し、rafed ');}}; folder.prototype.scan = function(){if(this.parent){console.log(' Start scan/''+this.name+'/ '+this.name);} else {console.log('ルートディレクトリのスキャンを開始: '+this.name);} //キーはここにあります。 = this.files.indexof(file); if(n === -1){console.log( 'delete:/''+file.name +'/' do not exed: ');} if(n> = 0){this.files.splice(n、1); console.log(' unded deleted: '+file.name leaf); (name){this.name = name; this.parent = null;}; file.prototype.add = function(){console.log( 'fileの下に追加できない'); file.prototype.scan = function(){console.log(this.parent.name+':'+thisname); {console.log( '削除できない:/''+file.name+'/'do存在しない:'); // test var folder = new Folder( 'directory'); var folder2 = new Folder( 'javascript'); var file1 = new file1 = new file2( 'node.js'); file( 'qq.jpg'); folder.add(folder1); folder.add(folder1); folder.add(folder2); folder1.add(file1); folder2.add(file2); // '学習資料'が成功した//「学習素材」が既に存在しているが、rased 'sucred' noded 'noded' noded 'を追加しました。 // 'qq.jpg' '' sulcefully fold.remove(folder1); folder.remove(folder1); file1.remove(file1); // readine deleted:realing deleted:deleteできない: '学習は存在しません:// delete:' node.js 'は存在しません: //これはマクロコマンドの実行に相当します//ルートディレクトリのスキャンを開始します:ディレクトリ//「ディレクトリ」のスキャンを開始:javascript // javascript:qq.jpg上記は、エディターによって導入されたJavaScriptの組み合わせモードです。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!