不同品牌电脑和不同种类接口搭配(桥接模式)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ccnuacmhdu/article/details/85053734

问题

联想、戴尔等品牌电脑,搭配USB接口实现各种功能,随着技术突破,可能不支持USB接口了,比如支持新的USB type C接口等

解决方案

桥接模式

UML类图

在这里插入图片描述

源代码

package task2;

public interface Adapter {
	public abstract void use(String computerBrand);
}

package task2;

public class Usb implements Adapter{

	@Override
	public void use(String computerBrand) {
		System.out.println("The "+computerBrand+" uses "+"USB.");
	}

}

package task2;

public class Thunderbolt implements Adapter{

	@Override
	public void use(String computerBrand) {
		System.out.println("The "+computerBrand+" uses "+"Thunderbolt.");
	}

}

package task2;

public abstract class Computer {

		protected Adapter adapter;
		public void setAdapter(Adapter adapter) {
			this.adapter = adapter;
		}
		public abstract void use();
}

package task2;

public class Asus extends Computer{

	@Override
	public void use() {
		String computerBrand = "ASUS";
		this.adapter.use(computerBrand);
	}
	
}

package task2;

public class Lenovo extends Computer{

	@Override
	public void use() {
		String computerBrand = "Levono";
		this.adapter.use(computerBrand);
	}
	
}

package task2;

public class Acer extends Computer{

	@Override
	public void use() {
		String computerBrand = "Acer";
		this.adapter.use(computerBrand);
	}
	
}

测试及结果

package task2;

public class Client {
	public static void main(String[] args) {
		Adapter adapter = new Usb();
		Computer computer = new Lenovo();
		
		computer.setAdapter(adapter);
		computer.use();
	}
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ccnuacmhdu/article/details/85053734