組合模式的定義:
將對象組合成樹的形式來表示整體和局部之間的關係,使得客戶端對單個對象和組合對象的使用有了一致性。
適用場合:
1.需要表示一個對象整體或者局部的關係,在具有整體和部分的層次結構中,希望通過一種方式忽略整體和部分的差異
,可以一致地對待它們。
2.讓客戶端忽略不同對象層次的變化,客戶端可以針對抽象類編程,無需關心對象層次結構的細節。
對象類圖:
package designpattern.composite;
public abstract class Component {
public abstract void operation();
}
package designpattern.composite;
import java.util.ArrayList;
import java.util.List;
public class Composite extends Component{
private List<Component> list = new ArrayList<Component>(10);
public void operation(){
for (int i = 0; i < list.size(); i++) {
list.get(i).operation();
}
}
public void add(Component component){
list.add(component);
}
public void remove(Component component){
list.remove(component);
}
}
package designpattern.composite;
public class Leaf extends Component {
@Override
public void operation() {
System.out.println("The leaf operation....");
}
}