版权声明:本文为博主原创文章,未经博主允许不得转载。 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();
}
}