设计模式笔记之十一桥接模式

桥接模式

为什么引入桥接模式

当我们定义某个多个功能的时候,其一,我们需要将各个功能独立,其二,每个功能之间可以进行组合,这个时候我们就需要桥接模式来帮助我们完成任务。

什么是桥接模式

将抽象和实现解耦,使的两者可以独立地变化。

核心思想

Abstraction:抽象画角色,用于定义出该角色的行为,同时保存一个实现的引用。

Implementor:实现的角色的接口,定义了一些行为和属性。

RefinedAbstraction:修正抽象化角色。

ConcreteImplementor:具体实现化角色。

具体案例

使用不同的加密算法在原有的加密算法上进行二次加密,使用桥接模式。

UML

代码

package com.dong.bridge;

public interface Encryption {
	public void Doencryption();
}

package com.dong.bridge;

public class DESEncryption implements Encryption {

	@Override
	public void Doencryption() {
		System.out.println("使用Des加密");
	}
}

package com.dong.bridge;

public class MD5Encryption implements Encryption {

	@Override
	public void Doencryption() {
		System.out.println("使用Md5加密");
	}
}

package com.dong.bridge;

public abstract class SecondaryEncryption {
	protected Encryption encryptionobj ;
	public void setEncryption(Encryption encryption) {
		this.encryptionobj = encryption;
	}
	public abstract void StartSecondEncryption();
}

package com.dong.bridge;

public class AES256 extends SecondaryEncryption {

	@Override
	public void StartSecondEncryption() {
		encryptionobj.Doencryption();
		System.out.println("AES256加密");
	}
}

package com.dong.bridge;

public class SHA512 extends SecondaryEncryption {

	@Override
	public void StartSecondEncryption() {
		encryptionobj.Doencryption();
		System.out.println("SHA512加密");
	}
}

优点

抽象和实现分离,对于具体的实现,扩充方便,实现细节对客户透明。

注意:桥接模式是对变化的封装,尽可能的把变化的因素封装到低层的逻辑单元中。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值