设计模式 (十一)桥模式(birdge)

简单的桥模式(birdge)将抽象与其实现解耦合,使他们的可以独立地变化,中文里把派生类叫做抽象的实现,而桥模式中所讲的实现恰恰不是这个意思,桥模式中的抽象类及派生类,实现指的是这些抽象类及派生类实现自己的方式。

简单的桥模式(birdge)的原理图



下面是关于这个模式的简单的一个例子程序,有一个鼠标抽象类,其这个鼠标分别属于联想和宏基生产的,这样用桥模式通过组合和继承,简单的实现了这种逻辑关系,并且达到了良好的复用,其实在实现的原理方面和上一个模--------装饰模式的实现原理是一样的:

package com.designpattern.bridge;

public abstract class Mouse {

	private Computer computer;

	public Mouse(Computer computer) {
		this.computer = computer;
	}

	public void produce() {
		this.computer.produce();
	}
}

package com.designpattern.bridge;

public interface Computer {
	public void produce();
}

package com.designpattern.bridge;

public class BlackMouse extends Mouse {

	public BlackMouse(Computer computer) {
		super(computer);
	}

	@Override
	public void produce() {
		super.produce();
		System.out.println("blackMouse");
	}

}

package com.designpattern.bridge;

public class RedMouse extends Mouse {

	public RedMouse(Computer computer) {
		super(computer);
	}

	@Override
	public void produce() {
		super.produce();
		System.out.println("redMouse");
	}

}

package com.designpattern.bridge;

public class Lenovo implements Computer {

	@Override
	public void produce() {
		System.out.print("Lenovo's ");

	}

}

package com.designpattern.bridge;

public class Acer implements Computer {

	@Override
	public void produce() {
		System.out.print("Acer's ");

	}

}

package com.designpattern.bridge;

public class Client {
	public static void main(String[] args) {
		new BlackMouse(new Lenovo()).produce();
		new RedMouse(new Lenovo()).produce();
		new BlackMouse(new Acer()).produce();
		new RedMouse(new Acer()).produce();
	}
}

使用桥模式,能够提供比使用继承关系更灵活的功能,他可以使抽象和实现分离开,降低了耦合关系。当有新的抽象类或实现方式时,之需要集成一个抽象和继承一个实现即可。

如果如需重新抽象出另外的一个类型,则需要修改抽象。比如前面除了电脑品牌和鼠标之外,还可以把鼠标分为无线和有线,此时就需要重新抽象出一个类型来。

### Linux Bridge 命令使用方法 #### 创建和管理网桥接口 为了创建一个新的网桥接口 `mbr0` 并将其激活,可以使用以下命令: ```bash sudo ip link add name mbr0 type bridge sudo ip link set mbr0 up ``` 这会建立并启动一个名为 `mbr0` 的新网桥实例[^5]。 #### 将物理网卡加入到网桥中 假设有一个叫做 `ens33` 的物理网卡要被添加至上述创建好的网桥里,则需执行下面这条指令来完成操作: ```bash sudo ip link set ens33 master mbr0 ``` 此命令使得指定的网络适配器成为网桥的一部分,并允许通过该网桥转发数据帧给其他成员端口[^2]. #### 配置 IP 地址 如果希望为新建的网桥分配静态IP地址, 可以利用如下的方式设置IPv4地址 (这里举例设定了192.168.1.1/24): ```bash sudo ip addr add 192.168.1.1/24 dev mbr0 ``` 对于动态获取IP的情况, 则可通过DHCP客户端程序自动取得合适的参数. #### 查看当前网桥状态 想要检查现有网桥及其连接情况的话, 应当运用这个查询语句获得相关信息列表: ```bash bridge link show ``` 它能展示出所有已知的网桥连同它们所辖属的具体端口详情[^3]. #### 删除网桥 最后,在不再需要某个特定网桥的时候,可以通过这两条简单的命令先关闭再移除目标对象: ```bash sudo ip link set mbr0 down sudo ip link delete mbr0 ``` 这些就是关于如何在Linux操作系统内管理和操控Bridge的一些基础指导与实践案例.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值