谈一下iOS开发中常用的设计模式

793 阅读2分钟

这是一个容易困扰到大家的问题,解答这个问题首先要弄清楚几个理论问题:

理论知识

什么是设计模式?

设计模式是一套被反复使用、多数人知晓、经过分类编目的代码设计经验总结,使用设计模式是为了代码可重用、易理解、可靠、易维护。

设计模式分为几类,分别包含哪些设计模式?

设计模式总体分为三类:

  1. 创建型,共五种:工厂方法、抽象工厂、单例、建造者、原型
  2. 结构型,共七种:适配器(Adapter)、桥接(Bridge)、组合(Composite)、装饰器(Decorator)、外观(Facade)、享元(Flyweight)、代理(Proxy) [ABCDFFP]
  3. 行为型,共十一种:策略、模板、观察者、迭代器、责任链、命令、备忘录、状态、访问者、中介者、解释器

设计模式分类之间的关系是什么?

  1. 创建型模式 软件设计的过程是循序渐进,一步步来的。在软件设计中对象的创建和使用时分开的,因为对象的创建会消耗掉系统很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象,这是创建型设计模式要探讨和解决的问题。
  2. 结构型模式 解决了对象创建问题后,一个对象的组成和多个对象间的依赖关系成了开发人员关注的焦点问题。因为,如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码健壮性及耦合性等。这是结构型模式的关注点
  3. 行为型模式 在对象的创建和对象的结构问题解决后,就剩下对象的行为问题。如果设计的好,对象的行为就会更清晰,对象之间的协作效率会提高。

每一个设计模式的使用场景和优缺点是什么?

能够回答这几个问题,说明你已经掌握了设计模式的“理论知识”。而在工作中的“实践”,则需要“大智慧”

实践思考

  1. 为什么要使用设计模式?
  2. 某设计模式的最佳实践是什么?