IOS架构设计
文章平均质量分 81
GengbinZ
14年毕业后任职于中数通信息有限公司的软件工程师岗位
展开
-
RAC的实现原理
RAC是什么?RAC — ReactiveCocoa(RAC) Github 一个开源框架!!RAC — 函数响应编程框架!!RAC有什么用?帮助我们更简单霸气的处理事件!!RAC里面最常见和常用的类!!!(注意先pod 'ReactiveCocoa','4.0.0')·RACSignal : 信号类!通过RACSignal创建一个信号!! (默认是:原创 2017-04-18 21:33:54 · 458 阅读 · 0 评论 -
ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式
一、本地私有库 目的:在本地创建私有库,项目pod本地创建的第三方库。 步骤如下: 1、如图,在桌面创建TestProject文件夹,里面再创建TestLib文件夹,里面再创建Classes文件夹,打开终端,cd到Classes文件夹下,输入命令行touch Person.h Person.m,创建Person.h和Person.m文件。接着cd到TestLib文件夹下,在终端输...原创 2019-04-29 23:36:44 · 1053 阅读 · 0 评论 -
ios组件化第一讲:git的基本使用和cocoapods的机制
工欲善其事必先利其器,在学习组件化之前,我们先来了解下git和cocoapods的使用。一、git的基本使用 需求:我需要在本地创建一个代码仓库,然后我们还需要一个远程的代码仓库,然后把两者链接起来,给你的代码打上一个tag。 解决方案:1、我们在远程代码仓库直接克隆到本地然后再打tag,链接:https://www.jianshu.com/p/3...原创 2019-03-12 11:44:29 · 287 阅读 · 0 评论 -
iOS SDWebImage的使用和底层原理
一、SDWebImage的使用1、SDWebImage的安装集成有2种方式:(1)直接到github地址下载,链接https://github.com/rs/SDWebImage (2)用cocoapods安装,在文件夹生成的podfile文件中添加pod 'SDWebImage' ,终端cd + 文件位置,然后pod install即可2、UITableView中导...原创 2019-03-08 18:36:57 · 2629 阅读 · 0 评论 -
IOS设计架构模式:外观模式和备忘录模式
一、外观模式1、外观模式简介 外观模式(Facade)在开发过程中的运用频率非常高,尤其是在现阶段各种第三方SDK充斥在我们的周边,而这些SDK很大概率会使用外观模式。通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。当然,在我们的开发过程中,外观模式也是我们封装API的常用手段,例如网络模块、ImageLoade...原创 2019-02-21 10:33:31 · 433 阅读 · 0 评论 -
IOS设计架构模式:责任链模式和模板模式
一、责任链模式1、何为责任链? 责任链模式的主要思想是,将发送者和接收者解耦,接受者对象引用了同一类型的另一个对象,形成一条链。链中的每个对象实现了同样的方法,处理对链中第一个对象发起的同一个请求。如果一个对象不知道如何处理请求,它就把请求传递给下一个响应者。 责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间发生耦合。此模式将这些对...原创 2019-02-14 10:48:52 · 505 阅读 · 0 评论 -
IOS设计架构模式:命令模式、装饰模式和原型模式
一、命令模式1、概念 命令对象封装了如何对目标执行指令的信息,因此客户端或调用者不必了解目标的任何细节,却仍可以对他执行任何已有的操作。通过把请求封装成对象,客 户端可以把它参数化并置入队列或日志中,也能够支持可撤销操作。命令对象将一个或多个动作绑定到特定的接收器。命令模式消除了作为对象的动作和执行它的接收器之间的绑定。2、应用场景 在软件系...原创 2019-02-18 12:11:03 · 357 阅读 · 0 评论 -
IOS设计架构模式:迭代器模式和组合模式
一、迭代器模式1、什么是迭代器模式? 提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。迭代器是 iOS 中运用的最多的模式之一,你用到的NSArray``NSDictionary``NSSet等都是迭代器模式的实现,是 iOS 已经完整实现了的。如果你有详细的翻一下它们存在的属性的话,应该会注意到有一个属性叫objectEnumerator和reverse...原创 2019-02-01 17:50:28 · 203 阅读 · 0 评论 -
IOS设计架构模式:构建者模式和中介者模式
一、构建者模式 什么是构建者模式? 将一个“复杂对象的构建算法”与它的“部件及组装方式”分离,使得构建算法和组装方式可以独立应对变化;复用同样的构建算法可以创建不同的表示,不同的构建过程可以复用相同的部件组装方式。 比如,建造一栋大厦,那么就需要一个总建筑工程师(也就是指导者,相当于uml图中的组装者),N个包工头(也就是承包商,相当于uml图中...原创 2018-09-06 19:22:32 · 571 阅读 · 0 评论 -
IOS设计架构模式:代理模式和消息转发机制
一、代理模式 原理:在iOS中代理的本质就是代理对象内存的传递和操作,我们在委托类设置代理对象后,实际上只是用一个id类型的指针将代理对象进行了一个弱引用。委托方让代理方执行操作,实际上是在委托类中向这个id类型指针指向的对象发送消息,而这个id类型指针指向的对象,就是代理对象。 通过上面这张图我们发现,其实委托方的代理属性本质上就是代理对象自身,设置委托代理就...原创 2018-09-04 17:11:48 · 1090 阅读 · 0 评论 -
IOS设计架构模式:桥接-工厂-享元模式
一、桥接模式1、定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。2、原理:抽象层与实现层相分离,抽象层定义了供客户段调用的抽象接口,实现层提供了具体的逻辑,实现类的应用被封装到抽象层的实例中。3、UML图如下: 模式使用场景:1,如果一个系统需要在构建的抽象化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承关系,通过桥接模式可以使它们...原创 2018-08-24 17:46:40 · 401 阅读 · 0 评论 -
IOS设计架构模式:适配器模式和观察者模式
一、适配器模式: 1、提出问题 朋友们在开发中有没有遇到过这种情况:开发中写了一个视图控件,虽然这个控件只是一个展示类的,并没有什么交互。但是在项目好几个地方都用到了这个控件了,你在给这个视图控件赋值的时候是怎么做的呢?是不是这么写的呢?- (void)loadModel:(Model *)model;这么写没有错,而且感觉很简单。但是有两点不好:1)视...原创 2018-08-31 17:41:21 · 611 阅读 · 0 评论 -
IOS架构模式MVC、MVP、MVVM
1、什么是架构? 没有明确的定义,属于设计的一方面,没明确的把设计和架构进行区分,它可以小到类与类之间的一个交互,大到不同模块之间,以及不同业务之间的交互,都可以从架构的层面去理解它。2、MVC架构方式 Model:模型,存数据。 View:视图,显示给用户看的界面。 Controller:控制器,可以直接与model对话,model通...原创 2018-08-22 17:34:37 · 324 阅读 · 0 评论 -
认识设计模式
一、设计模式 概念:为解决特定场景下的问题而定制的方案。二、设计模式的几大基本原则:为了构建可复用,可维护的代码 接口隔离原则:接口里面只做必要的事情,不做其他相关的事情; 开闭原则:对模块扩展开放,对修改关闭,.m里面的实现代码不改变; 里氏代换原则:任何类可以出现的地方,子类一定可以出现,子类跟父类可以相互替换,子类可...原创 2018-08-22 14:14:35 · 199 阅读 · 0 评论 -
三、ios组件化第三讲:远程私有库分析、码云私有库
由于github私有库是收费的,所以我们选择码云来免费建立私有库。一、远程私有库分析1、终端输入pod repo ,查看索引库。图中是github的本地索引库和远程索引库的路径。2、如图,这是《ios组件化第三讲》上github的逻辑图。一般来说,我们通过远程索引库的.spec描述文件上记录的真实源码地址,就可以拿到框架源码。所以如何建立私有库,就是要把远程索引库隐藏起来,变成...原创 2019-05-19 21:42:40 · 209 阅读 · 0 评论