有一个电脑制造商代理做HP笔记本电脑,后来该制造商得到了更多的品牌笔记本电脑的订单Acer,Lenovo,Dell,该制造商发现,如果一次同时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,绘制该模式的UML图,用Java控制台应用程序实现。
UML类图:
程序代码(Java语言):
Computer.java
public interface Computer {
public String newcomputer();
}
ComputerFactory.java
public interface ComputerFactory {
public Computer createComputer();
}
AcerComputer.java
public class AcerComputer implements Computer {
public String newcomputer() {
String s = "Acer笔记本电脑生产完成!";
return s;
}
}
DellComputer.java
public class DellComputer implements Computer{
public String newcomputer() {
String s = "Dell笔记本电脑生产完成!";
return s;
}
}
HpComputer.java
public class HpComputer implements Computer {
public String newcomputer() {
String s = "HP笔记本电脑生产完成!";
return s;
}
}
LenovoComputer.java
public class LenovoComputer implements Computer {
public String newcomputer() {
String s = "Lenovo笔记本电脑生产完成!";
return s;
}
}
AcerFactory.java
public class AcerFactory implements ComputerFactory{
public Computer createComputer() {
return new AcerComputer();
}
}
DellFactory.java
public class DellFactory implements ComputerFactory{
public Computer createComputer() {
return new DellComputer();
}
}
HpFactory.java
public class HpFactory implements ComputerFactory {
public Computer createComputer() {
return new HpComputer();
}
}
LenovoFactory.java
public class LenovoFactory implements ComputerFactory {
public Computer createComputer() {
return new LenovoComputer();
}
}
Client.java
public class Client {
public static void main(String[] args) {
ComputerFactory hpFactory = new HpFactory();
ComputerFactory acerFactory = new AcerFactory();
ComputerFactory lenovoFactory = new LenovoFactory();
ComputerFactory dellFactory = new DellFactory();
Computer hp = hpFactory.createComputer();
Computer acer = acerFactory.createComputer();
Computer lenovo = lenovoFactory.createComputer();
Computer dell = dellFactory.createComputer();
System.out.println(hp.newcomputer());
System.out.println(acer.newcomputer());
System.out.println(lenovo.newcomputer());
System.out.println(dell.newcomputer());
}
}