一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,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();

	}

}
posted on 2022-08-28 22:20  热爱技术的小郑  阅读(135)  评论(0编辑  收藏  举报