オブジェクトをツリー構造に組み合わせて、「部分的な」階層を表す組み合わせモード。組み合わせモードを使用すると、ユーザーは個々のオブジェクトと組み合わせオブジェクトを一貫して使用できます。組み合わせモードを使用すると、クライアントは、構成ファイルの変更として単純に単純にプロセス制御ステートメントを必要としていた関数を完了できます。
機能:再帰的または木のような階層データ構造の場合、それらは最も簡単な方法で処理できます。
エンタープライズレベルの開発と一般的に使用されるフレームワークのアプリケーション:システムディレクトリ構造とウェブサイトナビゲーション構造
これがディレクトリ構造の例です。
シナリオ:ディレクトリがあると仮定し、ディレクトリの下にサブディレクトリとファイルがあるとします。次に、ディレクトリ全体とすべてのファイルと作成時間をディレクトリに表示したいと思います。
特定のコードは次のとおりです。
パッケージcom.test.composite; import java.util.arraylist; import java.util.date; import java.util.list; public static void main(string [] args){date d = new date(); dir f1 = new dir( "my collection"、d); D.Setyear(2012); dir f2 = new dir( "picture"、d); dir f3 = new dir( "Music"、d); D.Setyear(2013); actualfile f4 = new eractyfile( "xi Yangyang and Big Big Wolf.avi"、d); f1.add(f4); actualfile f5 = new eractyfile( "taiyanghua.jpg"、d); actualfile f6 = new eractyfile( "変形ステンレス鋼。jpg"、d); f2.add(f5); f2.add(f6); f1.add(f2); f1.add(f3); f1.showfile(); }}/***最初に、ディレクトリとファイルはファイルに属します。したがって、抽象ファイルを要約することができます*/interface abstractfile {/***表示ファイルメソッド*/public void showfile();}/***/***/class eacheptalfileは抽象ファイル{private string name;プライベートデート作成型; public eractyfile(string name、date createdate){this.name = name; this.createdate = createdate; } public string getname(){return name; } public void setName(string name){this.name = name; } public date getCreateDate(){return createdate; } public void setCreateDate(date recutedate){this.createdate = createdate; } / ***抽象ファイルクラスのディスプレイファイルメソッドを実装* / public void showfile(){system.out.println( "file name:"+this.name+" - create time:"+this.createdate.getTime()); }}/***ディレクトリファイル*/class dirを実装abstractfile {private string name;プライベートデート作成型; / ***ディレクトリファイルとして、追加のサブファイルリストがあります*/プライベートリスト<AbstractFile>リスト= new ArrayList <>(); public dir(string name、date createdate){super(); this.name = name; this.createdate = createdate; } public string getname(){return name; } public void setName(string name){this.name = name; } public date getCreateDate(){return createdate; } public void setCreateDate(date recutedate){this.createdate = createdate; } / ** *ディレクトリファイルを追加し、ディレクトリにサブファイルまたはサブディレクトリを追加 * / public void add(abstractFile f){this.list.add(f); } / ** *ディレクトリファイルの操作を削除する、subfileまたはsubdirectoryを削除 * / public void remove(abstractfile f){this.list.remove(f); } / ** *ディレクトリファイルの操作を取得し、ディレクトリの下のサブファイルまたはサブディレクトリを取得します * / public AbstractFile getIndex(int index){return this.list.get(index); } public void showfile(){system.out.println( "ディレクトリ名:"+this.name+" - create time:"+this.createdate.getTime()); for(abstractfile f:list){f.showfile(); }}}コンビネーションモードはトラバーサル方法に似ていますが、この方法には、ツリー構造と同様のデータのみをターゲットにするなど、いくつかの制限もあります。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。