一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机,TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用
一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机,TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用抽象工厂模拟该场景。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实现。
uml类图
源码:
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(); } }
AI 代码解读