美文网首页
IOS开发进阶 桥接模式&命令模式

IOS开发进阶 桥接模式&命令模式

作者: 暴躁的小豆子 | 来源:发表于2019-11-19 11:37 被阅读0次

桥接模式

桥接模式的目的是把抽象层次结构从其实现中分离出来,使其能够独立变更。

思维图

A,B均为抽象类,B以A的属性形式存在,Class B作为抽象对象并没有实现,只是提供了接口。B1,B2,B3作为ClassB的子类,实现父类方法,提供不同实现。此时对于ClassB使用方来说,是感知到不使用了哪个实现。ClassA中有一个run处理方法,默认调用ClassB中的方法。ClassA1,A2,A3 集成ClassA,还可以做一些自定义操作 (Demo)

桥接模式的优点:

分离抽象接口及其实现部分。

桥接模式有时类似于多继承方案,但是多继承方案违背了类的单一职责原则(即一个类只有一个变化的原因),复用性比较差,而且多继承结构中类的个数非常庞大,桥接模式是比多继承方案更好的解决方法。

桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。

实现细节对客户透明,可以对用户隐藏实现细节。

命令模式

在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象实现二者之间的松耦合。这就是命令模式(Command Pattern)


原理图

Command 定义命令方法 也就是协议

ConcreteCommand 把协议跟接受者关联起来,通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。

Receiver 接受者,实现命令要求实现的相应功能。

Invoker 要求命令对象执行请求,通常会持有命令对象,可以持有很多的命令对象

Client  创建要命令的对象,并且设置命令对象的接收者

贴上demo:https://gitee.com/lzhawl/command_mode.git

相关文章

  • IOS开发进阶 桥接模式&命令模式

    桥接模式 桥接模式的目的是把抽象层次结构从其实现中分离出来,使其能够独立变更。 A,B均为抽象类,B以A的属性形式...

  • iOS面试之设计模式大全

    设计模式 设计模式内容如下: 责任链模式 桥接模式 命令模式 适配器模式 单例模式 等等 设计原则 作为一个开发者...

  • iOS开发进阶-责任链模式&桥接模式

    课程: 新浪微博资深大牛全方位剖析 iOS 高级面试 一、六大设计原则 单一职责原则:一个类只负责一件事 依赖倒置...

  • 常用设计模式 2018-09-15

    目录 代理模式 单例模式 命令模式 工厂模式 桥接模式 策略模式 装饰模式 观察者模式 门面模式 代理模式 静态代...

  • 设计模式分类汇总

    结构型 适配器模式 组合模式 桥接模式 代理模式 装饰者模式 门面模式 享元模式 行为型 责任链模式 命令模式 解...

  • iOS桥接模式

    桥接模式 桥接(Bridge Pattern)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式...

  • iOS 桥接模式

    生活中的场景: 就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路...

  • iOS 桥接模式

    桥接模式抽象出层次结构。上层抽象接口的职能,实现上层抽象接口的职能,层级间的通信协议(可以抽象为接口)。桥接模式的...

  • 9-2 5大设计模式

    1.哪些设计模式 1.1责任链 1.2桥接模式 1.3适配器 1.4单例模式 1.5命令模式

  • iOS面试之设计模式模块

    设计模式 设计模式内容如下: 责任链模式 桥接模式 命令模式 适配器模式 单例模式 等等 设计原则 单一职责原则 ...

网友评论

      本文标题:IOS开发进阶 桥接模式&命令模式

      本文链接:https://www.haomeiwen.com/subject/teohictx.html