package test;
public class TestAggregation{
public static void main(String[]args){
CPU cpu = new CPU();
Computer c = new Computer();
c.setCPU(cpu);
c.powerOn();
Computer2 c2 = new Computer2();
c2.powerOn();
c2 = null;
}
}
class CPU{
public void run(){
System.out.println("cpu running...");
}
public void other(){
}
}
//组合复用
class Computer2{
private CPU cpu;
public Computer2(){
cpu = new CPU();
}
public void powerOn(){
System.out.println("power on....");
cpu.run();
}
}
//聚合复用 class Computer{ private CPU cpu; public void setCPU(CPU cpu){ this.cpu = cpu; } public void powerOn(){ System.out.println("power on...."); cpu.run(); } /* public void other(){ cpu.other; } */ } //继承复用 一般用于制定规则,单纯的代码复用,大多使用聚合和组合就OK class Computer1 extends CPU{ public void powerOn(){ System.out.println("power on...."); run(); } }