美文网首页
谈谈设计模式

谈谈设计模式

作者: TAsama | 来源:发表于2019-03-28 11:02 被阅读0次

六大设计原则

  1. 单一职责原则
  2. 依赖倒置原则
  3. 开闭原则
  4. 接口隔离原则
  5. 里氏替换原则
  6. 迪米特法则
单一职责原则

一个类只做一件事

依赖倒置原则

抽象接口不依赖于具体实现, 而具体实现可以依赖于抽象接口
比如数据存储的封装, 抽象接口可以提供增删改查的方法, 而其实现应该是黑盒的, 与接口无关的.

开闭原则

对修改关闭, 对扩展开放

接口隔离原则

提供多个类型的协议, 避免一个臃肿的协议

里氏替换原则

父类可以被子类无风替换, 原有功能不受影响

迪米特法则

一个对象对其他对象尽可能少的了解(低耦合,高内聚)

责任链

责任链模式可以解决任务的依赖关系问题.


责任链的类构成

举例:
一个对象中有一个属性叫nextResponder, 该属性与当前对象属于同一个类, 当当前对象不能执行某个方法时, 就调用他的nextResponder来执行同样的方法, 将任务传递下去.
使用这种方式时, 当任务的依赖顺序发生改变时, 只需要调整其nextResponder的指向即可调整他的响应链顺序.
我们还可以根据后端给出的响应来动态调整响应链顺序, 系统中使用责任链的设计模式处理了UI事件的传递机制

桥接

桥接模式的类构成

使用者持有抽象的基类ClassA, ClassA持有抽象的基类B, 调用时, 根据需要将A1/A2/A3赋值给调用者原先持有的属性, 在将B1/B2/B3根据需求赋值给ClassA, 这样我们可以自由组合调用者和其内部的实际调用, 而作为桥梁的ClassA与ClassB本身不关心他们的实际调用.

适配器

一个现有类需要适应变化
  • 对象适配器
  • 类适配器

当我们有个一个年代久远的基类, 我们不便对其添加对象和方法时, 我们就可以为其添加适配器, 使一个类持有该基类, 在调用这个基类的前后我们可以插入自己的代码, 来适配新的需求. 这也就是做了一次简单的封装.

单例模式

  1. 在单例方法中创建实例使用
[[super allocWithZone:Null] init];
  1. 重写自身的allocWithZone方法在其内部调用单例方法保证创建永远是一个单例
  2. 遵守Copy协议, 重写copyWithZone方法, 返回self, 令其不能被copy

命令模式

我们可以将一些事件拆分开来, 事件的执行及其回调上下文等封装成commend对象, 调用commend的管理者封装为Manager单例对象, 以此来减少代码的分散, 调用时被转换成, 生成命令, 中央管理器执行命令的命令模式. 这和NSUrlSession使用的task模式类似, 创建task, 执行task的感觉

总结

  1. 手写单例实现
    重写allcoWithZone/copyWithZone方法, 使用[super allocWithZone:]创建单例
  2. 了解6大设计原则
  3. 桥接模式的主体结构
  4. UI事件的传递机制, 即责任链模式

相关文章

  • 谈谈设计模式

    六大设计原则 单一职责原则 依赖倒置原则 开闭原则 接口隔离原则 里氏替换原则 迪米特法则 单一职责原则 一个类只...

  • 第十三章、设计模式相关

    一、谈谈对设计模式的理解。你知道哪些设计模式,并简要叙述。 使用设计模式的目的:为了代码可重用性、让代码更容易被他...

  • 谈谈23种设计模式在Android源码及项目中的应用

    谈谈23种设计模式在Android源码及项目中的应用 本文首发于个人博客:Lam's Blog - 谈谈23种设计...

  • 10.Spring中用到的设计模式

    面试官:“谈谈 Spring 中都用到了哪些设计模式” 工厂模式 : Spring 使用工厂模式通过 BeanFa...

  • 设计模式之工厂方法模式

    在上篇文章设计模式之模板方法模式中谈到如何使用模板方法模式设计审批流程及其优点,本篇文章将谈谈如何使用工厂模式创建...

  • 架构设计和设计模式

    谈谈你对Android设计模式的理解 MVC MVP MVVM原理和区别 你所知道的设计模式有哪些? 项目中常用的...

  • Android基础(38)设计模式

    1)谈谈你对Android设计模式的理解2)MVC MVP MVVM原理和区别3)你所知道的设计模式有哪些?4)项...

  • 设计模式六大原则之单一职责原则

    最近在看一点设计模式的内容,在说23种设计模式之前,先要谈谈设计模式的六大原则,当然也有种说法是面向对象的六大原则...

  • 一些作者摘录

    回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议 设计模式大杂烩(24种设计模式的总结以...

  • 设计模式(总纲)

    网上关于设计模式的文章很多,为什么我还要重复写设计模式的文章,在看到LZ大牛的一篇《聊聊阿里社招面试,谈谈“野生”...

网友评论

      本文标题:谈谈设计模式

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