Modo de combinação, combinando objetos em uma estrutura de árvore para representar uma hierarquia "total total". O modo de combinação permite que os usuários usem objetos individuais e objetos combinados de forma consistente. O modo de combinação permite que os clientes concluam as funções que originalmente exigiam instruções de controle de processo, assim como simplesmente como modificação de arquivos de configuração.
Recursos: Para estruturas de dados hierárquicas recursivas ou semelhantes a árvores, elas podem ser processadas da maneira mais simples.
Aplicações no desenvolvimento do nível corporativo e estruturas comumente usadas: estrutura do diretório do sistema e estrutura de navegação no site
Aqui está um exemplo da estrutura do diretório:
Cenário: suponha que agora tenhamos um diretório e haja subdiretos e arquivos no diretório. Agora queremos visualizar o diretório inteiro e todos os arquivos e tempo de criação no diretório.
O código específico é o seguinte:
pacote com.test.composite; importar java.util.ArrayList; importar java.util.date; importar java.util.list; public class Demo {public static void main (string [] args) {date d = new Date (); Dir f1 = novo dir ("minha coleção", d); D.SetYear (2012); Dir f2 = novo dir ("imagem", d); Dir f3 = novo dir ("música", d); D.SetYear (2013); RealFile F4 = novo RealFile ("Xi Yangyang e Big Big Wolf.avi", D); F1.Add (F4); Realfile f5 = new realfile ("taiyanghua.jpg", d); Realfile f6 = new realfile ("deformado aço inoxidável.jpg", d); f2.add (f5); f2.add (f6); f1.add (f2); F1.Add (F3); f1.showfile (); }}/*** Primeiro de tudo, o diretório e o arquivo pertencem ao arquivo, para que possamos abstrair um arquivo abstrato*/interface abstractfile {/*** exibir o método do arquivo*/public void showfile ();}/*** arquivo real*/class RealFile Iplemmentos AbstractFile {private string Name; data privada criada; public realfile (nome da string, data criada) {this.name = name; this.createateTate = criado; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public data getCreatedate () {return criatedate; } public void setCreatedate (data criado) {this.createdate = criatedate; } / *** Implemente o método do arquivo de exibição da classe de arquivo abstrato* / public void showfile () {System.out.println ("Nome do arquivo:"+this.name+"-Create time:"+this.createDate.gettime ()); }}/*** Arquivo de diretório*/classe Dir implementos abstractfile {name de sequência privada; data privada criada; / *** Como um arquivo de diretório, haverá uma lista de subfile adicional*/ Lista privada <BRABUSTFILE> LIST = new ArrayList <> (); public dir (nome da string, data criada) {super (); this.name = nome; this.createateTate = criado; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public data getCreatedate () {return criatedate; } public void setCreatedate (data criado) {this.createdate = criatedate; } / ** * Adicione um arquivo de diretório, adicione um subfile ou subdiretório a um diretório * / public void add (abstratefile f) {this.list.add (f); } / ** * Exclua operação do arquivo de diretório, exclua subfile ou subdirectory * / public void Remover (abstractfile f) {this.list.remove (f); } / ** * Obtenha operação do arquivo de diretório, obtenha subfile ou subdiretório abaixo do diretório * / public abstractfile getIndex (int index) {return this.list.get (index); } public void showfile () {System.out.println ("Nome do diretório:"+this.name+"-Crie tempo:"+this.createdate.gettime ()); for (abstratefile f: list) {f.showfile (); }}}O modo de combinação é mais como um método de travessia, mas esse método também possui algumas limitações, como direcionar apenas dados semelhantes a uma estrutura de árvore.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.