创建型——工厂模式(抽象工厂)

UML图

创建型——工厂模式(抽象工厂)_第1张图片

 

特例图

创建型——工厂模式(抽象工厂)_第2张图片

 

以图的实现代码:

package com.lwf.abstractfactory;

public interface CPU {

	void getName();
}

 

 

package com.lwf.abstractfactory;

public class MacCPU implements CPU {

	public void getName(){
		System.out.println("MacCPU");
	}
}

 

 

package com.lwf.abstractfactory;

public class PcCPU implements CPU {

	public void getName(){
		System.out.println("PcCPU");
	}
}

 

 

package com.lwf.abstractfactory;

public interface RAM {

	void printName();
}

 

 

package com.lwf.abstractfactory;

public class MacRAM implements RAM {

	public void printName() {
		System.out.println("MacRAM");
	}

}

 

 

package com.lwf.abstractfactory;

public class PcRAM implements RAM {

	public void printName() {
		System.out.println("PcRAM");
	}

}

 

 

package com.lwf.abstractfactory;

public abstract class ComputerProducer {

	abstract CPU createCPU();
	abstract RAM createRAM(); 
}

 

 

package com.lwf.abstractfactory;

public class MacProducer extends ComputerProducer {

	CPU createCPU() {
		return new MacCPU();
	}

	RAM createRAM() {
		return new MacRAM();
	}

}

 

 

package com.lwf.abstractfactory;

public class PcProducer extends ComputerProducer {

	CPU createCPU() {
		return new PcCPU();
	}

	RAM createRAM() {
		return new PcRAM();
	}

}

 

 

测试类:

package com.lwf.abstractfactory;

public class Test {

	public static void main(String[] args) {

		ComputerProducer p = new MacProducer();
		CPU c = p.createCPU();
		RAM r = p.createRAM();
		c.getName();
		r.printName();
		
		p = new PcProducer();
		c = p.createCPU();
		r = p.createRAM();
		c.getName();
		r.printName();
	}

}

 

结果:

MacCPU
MacRAM
PcCPU
PcRAM

 

你可能感兴趣的:(C++,c,C#,UML)