uml類圖
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SMzcTM0YDOwMzY4QzYyEWZyYzX4ITNwYTMzAzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
package 抽象工廠實作電子器件;
public interface DianQiFactory {
public Kongtiao createkongtiao();//抽象工廠
public Tv createtv();
}
package 抽象工廠實作電子器件;
public interface Kongtiao { //空調的抽象産品
public void display();
}
package 抽象工廠實作電子器件;
public interface Tv {//電視的抽象産品
public void display();
}
package 抽象工廠實作電子器件;
public class HairerFactory implements DianQiFactory {
public Kongtiao createkongtiao() { //海爾工廠生産海爾空調
return new Hairer_Kong_Tiao();
}
public Tv createtv() { //海爾工廠生産海爾電視節
return new Hairer_Tv();
}
}
package 抽象工廠實作電子器件;
public class TvFactory implements DianQiFactory {
@Override
public Kongtiao createkongtiao() {
// TODO 自動生成的方法存根
return new Tcl_Kong_tiao();
}
@Override
public Tv createtv() {
// TODO 自動生成的方法存根
return new Tcl_Tv();
}
}
package 抽象工廠實作電子器件;
public class Hairer_Kong_Tiao implements Kongtiao {
@Override
public void display() {
// TODO 自動生成的方法存根
System.out.println("海爾空調");
}
}
package 抽象工廠實作電子器件;
public class Hairer_Tv implements Tv {
@Override
public void display() {
// TODO 自動生成的方法存根
System.out.println("海爾電視機");
}
}
package 抽象工廠實作電子器件;
public class Tcl_Kong_tiao implements Kongtiao {
@Override
public void display() {
// TODO 自動生成的方法存根
System.out.println("TCL空調");
}
}
package 抽象工廠實作電子器件;
public class Tcl_Tv implements Tv {
public void display() {
// TODO 自動生成的方法存根
System.out.println("TCL電視機");
}
}
package 抽象工廠實作電子器件;
public class Client {
public static void main(String[] args) {
// TODO 自動生成的方法存根
DianQiFactory factory1, factory2; // 兩個抽象工廠
Kongtiao k1, k2; // 空調兩個抽象産品
Tv tv1, tv2; // 電視機兩個抽象産品
factory1 = new HairerFactory(); // factory1 為具體海爾工廠
k1 = factory1.createkongtiao();
tv1 = factory1.createtv();
k1.display();
tv1.display();
factory2 = new TvFactory();// factory2位具體的TCL工廠
k2 = factory2.createkongtiao();// 工廠建立空調
tv2 = factory2.createtv();// 工廠建立電視機
k2.display();
tv2.display();
}
}