美文网首页
iOS-设计模式与架构

iOS-设计模式与架构

作者: e297b14c9e53 | 来源:发表于2020-03-13 14:28 被阅读0次
面试题
  • 讲讲 MVC、MVVM、MVP,以及你在项目里具体是怎么写的?
  • 你自己用过哪些设计模式?
  • 一般开始做一个项目,你的架构是如何思考的?
何为架构?
  • 架构(Architecture)
  • 软件开发中的设计方案
  • 类与类之间的关系、模块与模块之间的关系、客户端与服务端的关系
经常听到的架构名词
  • MVC、MVP、MVVM、VIPER、CDD
  • 三层架构、四层架构
  • ......
MVC - Apple版
  • 特点:
    • View只负责UI展示,不持有Model,
    • Controller负责将Model的数据展示在View上,负责处理View的交互逻辑
    • 例如UITableView,它的Cell只负责暴露image、textLabel,不关心展示什么数据,展示逻辑和交互逻辑,全部交由delegate和dataSource
  • 优点:View、Model可以重复利用,可以独立使用
  • 缺点:Controller的代码过于臃肿


    Model-View-Controller
MVC - 变种
  • 特点:
    • View会持有Model,负责UI展示逻辑,将展示相关代码从Controller中抽取出来
  • 优点:
    • 对Controller进行瘦身,将View内部的细节封装起来了,外界不知道View内部的具体实现
  • 缺点:
    • View依赖于Model


      Model-View-Controller
MVP
  • 创建一个Presenter类,弱引用Controller,负责处理Model、View、交互逻辑等,达到给Controller瘦身的目的
  • View不持有Model,Model与View的关系交由Presenter处理


    Model-View-Presenter
MVVM
  • ViewModel会持有Model,负责处理业务逻辑、UI状态管理
  • View 和 ViewModel双向绑定,ViewModel更新Model,会被View监听到,View的交互,会通知ViewModel
  • 通常使用RAC框架来实现双向绑定


    Model-View-ViewModel
应用分层
设计模式(Design Pattern)
  • 是一套被反复使用、代码设计经验的总结
  • 使用设计模式的好处是:可重用代码、让代码更容易被他人理解、保证代码可靠性
  • 一般与编程语言无关,是一套比较成熟的编程思想
  • 设计模式可以分为三大类
    • 创建型模式:对象实例化的模式,用于解耦对象的实例化过程,单例模式工厂方法模式,等等
    • 结构型模式:把类或对象结合在一起形成一个更大的结构,代理模式适配器模式组合模式装饰模式,等等
    • 行为型模式:类或对象之间如何交互,及划分责任和算法,观察者模式命令模式责任链模式,等等

相关文章

  • iOS-设计模式与架构

    面试题 讲讲 MVC、MVVM、MVP,以及你在项目里具体是怎么写的? 你自己用过哪些设计模式? 一般开始做一个项...

  • iOS开发集锦之 2017.02.13

    1. iOS-基于面向协议MVP模式下的软件设计--架构设计 作者:乔布永原文地址:http://dwz.cn/i...

  • 软件设计混淆概念书目录

    设计概念 设计模式 框架 架构 平台 框架与架构之间的关系 框架与设计模式之间的关系

  • Go Micro(5)——架构与微服务的设计模式

    Go Micro(5)——架构与微服务的设计模式 有很多关于 micro 架构的疑问和微服务的设计模式的问题,今天...

  • Android架构师

    MVP架构设计 MVVM架构设计 IOC框架与代理模式 泛型及其JSON解析框架 手写ButterKnife框架 ...

  • iOS 架构模式学习笔记

    iOS 架构模式学习笔记 设计模式 设计模式 和 编码技巧 、架构模式的区别: 设计模式:特定场景下的最佳实践 如...

  • 架构思维学习总结(二)

    2-2 架构设计过程 一、架构风格与架构模式 架构风格(Architectural styles)有哪些根据不同纬...

  • 架构思维学习总结(四)

    2-4 架构设计底层认知 一、设计模式认知升级 架构设计模式和GOF 23种设计模式的关系Creational p...

  • 架构与设计模式

    架构 架构(Architecture) 软件开发中的设计方案 类与类之间的关系、模块与模块之间的关系、客户端与服务...

  • 架构与设计模式

    一.架构 何为架构? 软件开发中的设计方案; 类与类之间的关系、模块与模块之间的关系、客户端与服务端的关系 1.M...

网友评论

      本文标题:iOS-设计模式与架构

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