Комбинированный режим, объединяя объекты в структуру дерева, чтобы представлять «частичную» иерархию. Комбинированный режим позволяет пользователям постоянно использовать отдельные объекты и комбинированные объекты. Комбинированный режим позволяет клиентам выполнять функции, которые изначально требуют операторов управления процессами, как просто изменяя файлы конфигурации.
Особенности: для рекурсивных или деревьев иерархических структур данных их можно обрабатывать самым простым способом.
Приложения в разработке на уровне предприятия и обычно используемых структурах: структура системного каталога и навигационная структура веб-сайтов
Вот пример структуры каталога:
Сценарий: Предположим, у нас теперь есть каталог, и в каталоге есть подкаталог и файлы. Теперь мы хотим просмотреть весь каталог и все файлы и время создания в каталоге.
Конкретный код заключается в следующем:
пакет com.test.composite; import java.util.arraylist; import java.util.date; import java.util.list; demo public class demo {public static void main (string [] args) {date d = new Date (); Dir F1 = новый Dir («Моя коллекция», D); D.Seetheear (2012); Dir F2 = новый Dir ("Picture", D); DIR F3 = новый DIR («Музыка», D); D.Seetheer (2013); Фактическое файл f4 = новый фактический файл ("Xi Yangyang и Big Big Wolf.avi", D); f1.add (f4); Фактическое файл f5 = новый фактический файл ("taiyanghua.jpg", d); Фактический файл f6 = new FactionFile («Деформированная нержавеющая сталь.jpg», d); f2.add (F5); f2.add (f6); f1.add (f2); f1.add (f3); f1.showfile (); }}/*** Во -первых, каталог и файл принадлежат файлу, поэтому мы можем абстрагировать абстрактный файл*/interface AbstractFile {/*** Метод отображения файла*/public void showfile ();}/*** Real File*/class Activefile реализует AbstractFile {private String name; Частная дата создана; public actualfile (string name, date clevatieate) {this.name = name; this.createdate = создано; } public String getName () {return name; } public void setName (string name) {this.name = name; } public date getCreatedAte () {return cantureTate; } public void setCreatedAte (дата создан) {this.createdate = censueTate; } / *** Реализовать метод отображения файла абстрактного файла класса* / public void showfile () {system.out.println ("Имя файла:"+this.name+"-Создание времени:"+this.createdate.gettime ()); }}/*** Файл каталога*/class dir реализует AbstractFile {private String name; Частная дата создана; / *** В качестве файла каталога будет дополнительный список подфилей*/ private list <bhratefile> list = new ArrayList <> (); public dir (string name, дата создан) {super (); this.name = name; this.createdate = создано; } public String getName () {return name; } public void setName (string name) {this.name = name; } public date getCreatedAte () {return cantureTate; } public void setCreatedAte (дата создан) {this.createdate = censueTate; } / ** * Добавить файл каталога, добавить подфил или подкаталог в каталог * / public void add (AbstractFile f) {this.list.add (f); } / ** * Удалить работу файла каталога, удалить подфил или подкаталог * / 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+"-создать время:"+this.createdate.gettime ()); для (AbstractFile F: List) {f.showfile (); }}}Комбинированный режим больше похож на метод обхода, но этот метод также имеет некоторые ограничения, такие как только нацеливание данных, аналогичных структуре деревьев.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.