桥接模式(Bridge)

      桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。
      桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化, 像常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。


实现代码:

先定义接口:
public interface Sourceable {  
    public void method();  
}  
分别定义两个实现类:
public class SourceSub1 implements Sourceable {  
    @Override  
    public void method() {  
        System.out.println("this is the first sub!");  
    }  
}  
public class SourceSub2 implements Sourceable {  
    @Override  
    public void method() {  
        System.out.println("this is the second sub!");  
    }  
} 
定义一个桥,持有Sourceable的一个实例:
public abstract class Bridge {  
    private Sourceable source;  
  
    public void method(){  
        source.method();  
    }  
      
    public Sourceable getSource() {  
        return source;  
    }  
  
    public void setSource(Sourceable source) {  
        this.source = source;  
    }  
}  
public class MyBridge extends Bridge {  
    public void method(){  
        getSource().method();  
    }  
}  

测试类:
public class BridgeTest {  
    public static void main(String[] args) {  
        Bridge bridge = new MyBridge();  
        /*调用第一个对象*/  
        Sourceable source1 = new SourceSub1();  
        bridge.setSource(source1);  
        bridge.method();  
        /*调用第二个对象*/  
        Sourceable source2 = new SourceSub2();  
        bridge.setSource(source2);  
        bridge.method();  
    }  
}  

这样,就通过对Bridge类的调用,实现了对接口Sourceable的实现类SourceSub1和SourceSub2的调用。


或则下面这个例子:

public abstract class Person {
	private String cloth;
	private String type;

	public String getCloth() {
		return cloth;
	}
	public void setCloth(String cloth) {
		this.cloth = cloth;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	
	public abstract void dress();

}
public class Lady extends Person {
	public Lady() {
		setType("女人");
		setCloth("裙子");
	}

	@Override
	public void dress() {
		System.out.println(getType() + getCloth());

	}

}
public class Man extends Person {
	public Man() {
		setType("男人");
		setCloth("马甲");
	}

	@Override
	public void dress() {
		System.out.println(getType() + getCloth());
	}
}
public abstract class Bridge {
	private Person person;

	public Person getPerson() {
		return person;
	}

	public void setPerson(Person person) {
		this.person = person;
	}
	
	public abstract void method();
}
public class PersonBridge extends Bridge{

	@Override
	public void method() {
		// TODO Auto-generated method stub
		getPerson().dress();
	}

}

public class Test {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Bridge bridge = new PersonBridge();

		Person man = new Man();
		bridge.setPerson(man);
		bridge.method();

		Person lady = new Lady();
		bridge.setPerson(lady);
		bridge.method();
	}
}

### 如何在 VMware 中配置和使用桥接网络模式 #### 安装与权限设置 为了确保能够成功配置桥接模式,在启动 VMware 之前应以管理员身份运行该程序。这一步骤能防止因权限不足而导致的配置失败[^2]。 #### 虚拟网络编辑器中的设置 通过菜单栏选择`编辑->虚拟网络编辑器`来访问网络选项。在此界面下可以看到多个用于不同类型的网络连接的适配器,其中 `VMnet0` 对应于桥接模式下的虚拟交换机。确认此接口已启用并与物理网卡关联,从而允许虚拟环境内的设备如同处于同一局域网中一样工作[^1]。 #### 卸载并重新安装协议 如果遇到无法切换至桥接模式的问题,则可能需要先卸载名为 "VMware Bridge Protocol" 的组件再尝试重启软件。完成上述操作之后再次进入虚拟网络编辑器调整为所需的桥接状态即可解决临时性的功能异常情况。 #### 验证MAC地址获取 一旦完成了以上步骤,进入到具体的Linux发行版实例内部(例如Ubuntu),可以通过命令行工具查询当前系统的硬件信息,特别是关注网卡所对应的 MAC 地址是否正确无误地被识别出来。对于 Ubuntu 来说,可以利用 `ip addr` 命令来进行这项检查工作[^3]。 ```bash ip addr show ``` #### 测试连通性 最后一步是要验证新建立起来的网络链接是否有效运作。可以在宿主机操作系统里试着 ping 一下刚刚获得 IP 地址的目标机器;反过来也是一样——从客户 OS 发起同样的请求回传给外部世界。成功的响应意味着整个过程顺利完成,并且现在应该能够在两者之间自由传输数据包了。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值