조합 모드, 객체를 트리 구조로 결합하여 "부분적"계층을 나타냅니다. 조합 모드를 통해 사용자는 개별 객체와 결합 된 객체를 일관되게 사용할 수 있습니다. 조합 모드를 사용하면 클라이언트가 원래 프로세스 제어 명령문이 단순히 구성 파일을 수정하는 것처럼 기능을 완료 할 수 있습니다.
특징 : 재귀 또는 트리와 같은 계층 적 데이터 구조의 경우 가장 간단한 방식으로 처리 할 수 있습니다.
엔터프라이즈 수준 개발 및 일반적으로 사용되는 프레임 워크의 응용 프로그램 : 시스템 디렉토리 구조 및 웹 사이트 탐색 구조
다음은 디렉토리 구조의 예입니다.
시나리오 : 이제 디렉토리가 있고 디렉토리 아래에 하위 디렉토리와 파일이 있다고 가정합니다. 이제 디렉토리에서 전체 디렉토리와 모든 파일 및 생성 시간을보고 싶습니다.
특정 코드는 다음과 같습니다.
package com.test.composite; import java.util.arraylist; import java.util.date; import java.util.list; public class demo {public static void main (String [] args) {date d = new 날짜 (); dir f1 = new dir ( "내 컬렉션", d); D.Setyear (2012); dir f2 = new dir ( "그림", d); dir f3 = new dir ( "음악", d); D.Setyear (2013); Recallfile f4 = 새로운 실제 파일 ( "Xi Yangyang 및 Big Big Wolf.avi", d); f1.add (f4); 실제 파일 f5 = 새로운 실제 파일 ( "taiyanghua.jpg", d); 실제 파일 f6 = 새로운 실제 파일 ( "변형 스테인리스 스틸 .jpg", d); f2.add (f5); f2.add (f6); f1.add (f2); f1.add (f3); f1.showfile (); }}/*** 우선, 디렉토리와 파일은 파일에 속하므로 초록 파일*/인터페이스 AbstractFile {/*** 디스플레이 파일 메소드*/public void showfile ();}/***/class real file emplements {private string name; 생성 된 개인 날짜; public realyfile (문자열 이름, 날짜 생성 된 날짜) {this.name = name; this.createdate = createate; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public Date getCreatedate () {return createate; } public void setCreatedate (날짜 createate) {this.createdate = createate; } / *** 초록 파일 클래스의 디스플레이 파일 메소드를 구현* / public void showfile () {System.out.println ( "파일 이름 :"+this.name+"-시간 만들기 :"+this.createdate.gettime ()); }}/*** 디렉토리 파일*/class dir implements actractFile {개인 문자열 이름; 생성 된 개인 날짜; / *** 디렉토리 파일로서 추가 하위 파일 목록이 있습니다*/ private list <buttractFile> list = new ArrayList <> (); public dir (문자열 이름, 날짜 생성) {super (); this.name = 이름; this.createdate = createate; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public Date getCreatedate () {return createate; } public void setCreatedate (날짜 createate) {this.createdate = createate; } / ** * 디렉토리 파일을 추가하고 디렉토리에 서브 파일 또는 하위 디렉토리를 추가 * / public void add (acpractfile f) {this.list.add (f); } / ** * 디렉토리 파일의 작동 삭제, 하위 파일 또는 하위 디렉토리 삭제 * / public void remove (acpractFile f) {this.list.remove (f); } / ** * 디렉토리 파일의 작동을 가져오고 디렉토리 아래의 하위 파일 또는 하위 디렉토리를 얻습니다. * / public acpractFile getIndex (int index) {reture this.list.get (index); } public void showfile () {system.out.println ( "디렉토리 이름 :"+this.name+"-시간을 만듭니다 :"+this.createdate.gettime ()); for (AbstractFile f : list) {f.showfile (); }}}조합 모드는 트래버스 방법과 비슷하지만이 방법은 트리 구조와 유사한 데이터를 타겟팅하는 것과 같은 몇 가지 제한 사항이 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.