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、架构与设计模式


目录
相关文章
|
6月前
|
Oracle Java 编译器
基本概念【入门、 发展简史、核心优势、各版本的含义、特性和优势、JVM、JRE 和 JDK 】(二)-全面详解(学习总结---从入门到深化)
基本概念【入门、 发展简史、核心优势、各版本的含义、特性和优势、JVM、JRE 和 JDK 】(二)-全面详解(学习总结---从入门到深化)
84 1
|
3月前
|
Java 开发者
Java 编程风格与规范:跟上时代热点,打造高质量代码,为开发者梦想保驾护航
【8月更文挑战第30天】本文强调了Java编程中代码质量和可维护性的重要性,详细介绍了命名规范、代码格式和注释的最佳实践,如使用描述性的命名、适当的缩进及空行,以及关键代码部分的注释说明,同时还提供了避免魔法值和减少代码重复的建议与示例,帮助提升团队协作效率和项目长期发展。
66 2
|
3月前
|
开发者 C# Android开发
明白吗?Xamarin与Native的终极对决:究竟哪种开发方式更适合您的项目需求,让我们一探究竟!
【8月更文挑战第31天】随着移动应用开发的普及,开发者面临多种技术选择。本文对比了跨平台解决方案Xamarin与原生开发方式的优势与劣势。Xamarin使用C#进行跨平台开发,代码复用率高,可大幅降低开发成本;但因基于抽象层,可能影响性能。原生开发则充分利用平台特性,提供最佳用户体验,但需维护多套代码库,增加工作量。开发者应根据项目需求、团队技能和预算综合考量,选择最适合的开发方式。
115 0
|
3月前
|
安全 Java 测试技术
Go 高性能编程心法探秘
文章深入探讨了Go语言在高性能编程中的各种技巧,包括常用数据结构的使用、内存管理、并发编程策略,以及如何通过减少锁的使用、有效利用sync包中的工具来优化程序性能。
20 0
|
6月前
|
Python
物理光学:光的探秘与编程实践
物理光学:光的探秘与编程实践
74 0
|
6月前
|
程序员 Python
类的设计奥秘:从代码到架构的科普全解
类的设计奥秘:从代码到架构的科普全解
95 2
|
6月前
|
存储 编译器 C++
嵌入式中C++ 编程习惯与编程要点分析
嵌入式中C++ 编程习惯与编程要点分析
53 1
|
6月前
|
存储 Java 索引
《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,夯实底层基础 —— 吃透class字节码文件技术基底和实现原理(核心结构剖析)
《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,夯实底层基础 —— 吃透class字节码文件技术基底和实现原理(核心结构剖析)
76 0
|
存储 缓存 IDE
Java编程规约(源于阿里,精简版)
Java编程规约(源于阿里,精简版)
859 0
|
设计模式 架构师 Java
程序员必修课:阿里性能优化全解终开源!设计+代码+JVM三飞
性能优化可以说是我们程序员的必修课,如果你想要跳出CRUD的苦海,成为一个更“高级”的程序员的话,性能优化这一关你是无论无何都要去面对的。为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化。除了最常见的代码优化外,在软件架构上、JVM虚拟机层、数据库以及操作系统层面都可以通过各种手段进行调优,从而在整体上提升系统的性能。