iOS设计模式之桥接模式
2017-05-22 本文已影响30人
3697d6c42285
桥接模式
1、什么是桥接模式
将抽象部分与实现部分分离,使它们都可以独立的变化。
桥接模式一共有两个角色:
- 抽象角色
- 实现角色
抽象角色负责通知实现角色做什么事情,实现角色负责实现抽象角色通知的事情。
就相当于你的大脑给你的身体下达指令,大脑负责吩咐身体做什么事情,身体负责执行大脑所吩咐的动作。
2、桥接模式用在什么地方
- 不希望在抽象和实现之间形成一种固定的关系,以便切换
- 抽象和实现都可以通过子类进行独立的扩展
- 对实现的修改不会影响到客户端和抽象
- 在不同的抽象接口中共享一个实现
3、桥接模式的使用
- 首先定义实现类,实现类包括可以执行的动作的枚举,执行动作的方法和设置现在的动作。
- 定义抽象类,抽象类实现设置命令并执行。
4、总结
桥接模式说起来使用不算复杂,但是平时的使用中,用的比较少,或者说完全运用桥接模式的比较少,或多或少还是会用到他的思想。
优点很突出,最大的优点就是抽象和实现完全分离,相互不影响,拥有独立的扩展能力。
5、demo
class Body: NSObject {
enum action {
case walk
case run
case lie
case sit
}
var currentAction: action?
func execuate() {
switch self.currentAction! {
case .walk: break
case .run: break
case .lie: break
case .sit: break
}
}
func loaddBridgeCommand(act:action) {
self.currentAction = act
}
}
class Brain: NSObject {
var body = {Body()}()
func walk() {
self.setCommand(act: .walk)
}
func run() {
self.setCommand(act: .run)
}
func lie() {
self.setCommand(act: .lie)
}
func sit() {
self.setCommand(act: .sit)
}
func setCommand(act:Body.action) {
self.body.loaddBridgeCommand(act: act)
self.body.execuate()
}
}