OC底层知识(七) : 架构设计

简介: OC底层知识(七) : 架构设计


一、抛出几个的问题



  • 1.1、讲讲 MVC、MVVM、MVP,以及你在项目里具体是怎么写的?
  • 1.2、你自己用过哪些设计模式?
  • 1.3、一般开始做一个项目,你的架构是如何思考的?


二、架构(Architecture)



  • 2.1、下面的是对架构的理解
  • 软件开发中的设计方案
  • 类与类之间的关系、模块与模块之间的关系、客户端与服务端的关系
  • 2.2、平时常常听到的架构名词
  • MVC、MVP、MVVM、VIPER、CDD
  • 三层架构、四层架构
  • 2.3、苹果最初对 MVC 的设计(代码交互都放在了Controller里面



image.png


  • 优点:View、Model 可以重复利用,可以独立使用
  • 缺点:Controller的代码过于臃肿
  • MVC模式的demo


  • 2.4、MVC – 变种(其实就是给view传model,而不再是在Controller里面给view赋值,把赋值的操作放到view里面)



image.png

image.png



  • 优点:对Controller进行瘦身,将View内部的细节封装起来了,外界不知道View内部的具体实现
  • 缺点:View依赖于Model
  • MVC 变种模式的demo


  • 2.5、MVP 模式


image.png


  • 特点
  • 优点:View、Model 可以重复利用,可以独立使用,代码的处理都放在了Presenter里面
  • 缺点:Controller可能要建立多个Presenter
  • MVP 模式的demo


  • 2.6、MVVM 模式


image.png

  • 优点:View、Model 可以重复利用,可以独立使用,代码的处理都放在了viewMode里面
  • 缺点:Controller可能要建立多个viewMode
  • MVVM 模式的demo


  • 2.7、三层架构、四层架构


image.png


三、设计模式(Design Pattern)



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


四、推荐内容



  • 4.1、数据结构与算法
    严蔚敏,《数据结构》


image.png


大话数据结构与算法 提取码: f2ux


image.png

4.2、网络

image.png


HTTP权威指南电子书 提取码: bsji


《TCP/IP详解卷1:协议》:买第一本就好


image.png




  • 4.3、架构与设计模式


目录
相关文章
|
5月前
|
算法 Java 程序员
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
84 9
|
8月前
|
设计模式 监控 算法
【领域驱动设计专题】一文带领你透视DDD领域驱动模型的本质和设计原理分析指南(通用语言体系)
【领域驱动设计专题】一文带领你透视DDD领域驱动模型的本质和设计原理分析指南(通用语言体系)
157 2
|
5月前
|
开发者 C# Android开发
明白吗?Xamarin与Native的终极对决:究竟哪种开发方式更适合您的项目需求,让我们一探究竟!
【8月更文挑战第31天】随着移动应用开发的普及,开发者面临多种技术选择。本文对比了跨平台解决方案Xamarin与原生开发方式的优势与劣势。Xamarin使用C#进行跨平台开发,代码复用率高,可大幅降低开发成本;但因基于抽象层,可能影响性能。原生开发则充分利用平台特性,提供最佳用户体验,但需维护多套代码库,增加工作量。开发者应根据项目需求、团队技能和预算综合考量,选择最适合的开发方式。
138 0
|
8月前
|
存储 Java 索引
《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,夯实底层基础 —— 吃透class字节码文件技术基底和实现原理(核心结构剖析)
《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,夯实底层基础 —— 吃透class字节码文件技术基底和实现原理(核心结构剖析)
88 0
|
设计模式 NoSQL Java
你还在写垃圾代码?快用 Java 8 重构传统设计模式吧,是真的优雅!(1)
你还在写垃圾代码?快用 Java 8 重构传统设计模式吧,是真的优雅!
129 0
你还在写垃圾代码?快用 Java 8 重构传统设计模式吧,是真的优雅!(1)
|
设计模式 Java
你还在写垃圾代码?快用 Java 8 重构传统设计模式吧,是真的优雅!(2)
你还在写垃圾代码?快用 Java 8 重构传统设计模式吧,是真的优雅!
106 0
你还在写垃圾代码?快用 Java 8 重构传统设计模式吧,是真的优雅!(2)
|
存储 自然语言处理 前端开发
夯实基础,编译器原理前端部分浅析
如果说计算机网络、操作系统、数据结构这些是编程必学基础,我能理解,现在连编译器原理都是必备基础了吗?是的,我们太习惯于从高级语言学起了,反而忘了C、C++、Java 这些高级语言是如何一层一层解析直至被计算机读懂的。正本清源,我们对编译器的认知,应该提到和操作系统、数据库、浏览器、编程语言、算法这些编程基础技能同一水平。
|
传感器 缓存 编译器
OC底层知识(六) : 性能优化
OC底层知识(六) : 性能优化
418 0
OC底层知识(六) : 性能优化
|
存储 安全 编译器
OC底层知识(十二) : 内存管理
OC底层知识(十二) : 内存管理
205 0
OC底层知识(十二) : 内存管理
|
安全 Unix 程序员
OC底层知识(十一) : 多线程
OC底层知识(十一) : 多线程
211 0
OC底层知识(十一) : 多线程

热门文章

最新文章