
iOS架构
文章平均质量分 60
群野
cording
展开
-
iOS框架设计内容
1、设计模式2、SDK设计3、组件化4、数据库框架ORM框架设计5、常用框架MVC\MVP\MVVM6、RAC/RXswift、AFN 、SDWebImage7、H5扩展RN、微信小程序原创 2019-03-19 15:54:01 · 286 阅读 · 0 评论 -
设计原则及iOS设计模式
设计模式的六大原则有:Single Responsibility Principle:单一职责原则Open Closed Principle:开闭原则Liskov Substitution Principle:里氏替换原则Law of Demeter:迪米特法则Interface Segregation Principle:接口隔离原则Dependence Inversion Pri...原创 2019-03-19 17:57:29 · 262 阅读 · 0 评论 -
iOS 文件管理
文章目录文件管理之NSFileManager1.创建文件夹2.创建文件3.写入文件4.读文件5.判断文件是否存在6.计算文件大小7.获取指定文件夹内所有文件8.删除文件9.移动文件文件管理之NSFileManager1.创建文件夹+(BOOL)creatDir:(NSString *)path{ if (path.length==0) { return NO; } // 初始化文件管理类 (单例) NSFileManager *fileManager =原创 2022-05-31 14:44:36 · 589 阅读 · 0 评论 -
沙盒中的文件目录结构及用途
Documents保存用户创建的文档文件的目录,用户可以通过文件分享分享该目录下的文件。保存应用运行时生成的需要持久化的数据,如游戏进度、涂鸦软件的绘图等信息,在iTunes和iCloud备份时会备份该目录。建议保存你希望用户看得见的文件。Library苹果不建议在该目录下保存任何用户相关数据,而是保存APP运行需要的修改数据,当然用户可以根据自己的实际需要进行保存。包含四个文件夹:Cache建议保存数据缓存使用。在用户的磁盘空间已经使用完毕时有可能删除该目录下的文件,在APP使用期间不会删除,A原创 2022-05-31 11:36:12 · 549 阅读 · 0 评论 -
适配器模式
1、定义将一个原始接口转成客户端需要的接口,原始接口--相当于:Adaptee,客户端需要接口(调用者)---相当于:Target原始接口不兼容现在新的接口,将他们两个可以一起工作,一起工作需要Adapter实现2、应用场景接口不兼容可以重复使用的类,用于与一些彼此没有太大关联的一些类一起工作统一输出接口,输入端类型无法确定3、角色划分3个核心角色适配器(核心)目标接...原创 2019-05-14 16:57:01 · 298 阅读 · 0 评论 -
命令模式
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。应用:组件化路由router消息转发机制...原创 2019-04-23 04:03:29 · 161 阅读 · 0 评论 -
迭代器模式
迭代器模式定义:提供一种方法顺序的访问一个聚合对象中各个元素,而又不暴露该对象的内部表示细节。意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:遍历一个聚合对象。如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。关键代码:定义接口:hasNext, next。应用场景遍历容器对象遍历...原创 2019-04-12 17:23:11 · 115 阅读 · 0 评论 -
外观模式
外观模式(Facade),亦称“过程模式”Facade,这个外观类为子系统提供一个共同的对外接口Clients,客户对象通过一个外观接口读写子系统中各接口的数据资源。要求一个子系统的外部和其内部的通信必需通过一个统一的对象进行。外观模式提供了一个高层次接口,使得子系统更易于使用主要应用场景,接手别人比较杂乱无章的代码,提供相应过程响应的接口调用当我们在构建一个层次结构的子系统时,使用...原创 2019-04-12 15:48:47 · 107 阅读 · 0 评论 -
抽象工厂
工厂方法工厂类一般用静态方法,定义枚举类型参数,根据传入类型返回创建对象。抽象类id 和 instancetype的区别是instancetype返回类型的方法不能带参数动态类型的对象方法判断,isMemberOfClass和isKindOfClass的区别抽象类不能直接调用new,alloc进行创建抽象基类可以通过objc_msgsend()方法调用子类的方法抽象工厂抽象工厂...原创 2019-04-12 14:49:06 · 121 阅读 · 0 评论 -
责任链模式
1、定义使多个对象有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止2、应用场景多个对象同时处理同一请求,但是由哪个对象处理那么在运行的时候决定。3、责任链模式-简化版本-角色划分?角色一:Handler(抽象处理对象),申明一个处理方法,并且在其中保持一个对下一个处理节点对象的引用,有点类似链表角色二...原创 2019-04-12 13:46:34 · 280 阅读 · 0 评论 -
观察者模式
当一个对象状态发生改变,所有依赖于他订阅者都会发生改变(收到状态改变的通知)。1应用场景场景一:关联场景场景二:事件多级触发场景三:跨系统消息交互场景(例如:消息队列、事件总线)RxSwift、RxJava、RxAndroid(微软应用在软件领域)2角色划分角色一:被观察者(目标对象->抽象)角色二:具体被观察者(目标对象)角色三:观察者角色四:具体观察者3开...原创 2019-04-12 13:22:33 · 499 阅读 · 0 评论 -
模版方法模式
模版方法模式1模版方法模式的定义定义一个操作中的算法框架将一些步骤延时到子类实现子类可以不改变算法结构,可以重新定义算法某些特定的功能步骤2运用场景场景一:多个子类有公共方法,并且逻辑基本相同场景二:重复、复杂算法,将核心算法设计为模版方法模式,其周边的细节可以有子类去实现场景三:代码重构(通常情况下就会用到模版方法模式)3角色划分角色一:抽象类(定义了算法框架结构,...原创 2019-03-20 17:00:27 · 140 阅读 · 0 评论 -
泛型设计模式
观察者模式定义当一个对象状态发生改变,所有依赖于他订阅者都会发生改变(收到状态改变的通知)。应用场景场景一:关联场景场景二:事件多级触发场景三:跨系统消息交互场景(例如:消息队列、事件总线)RxSwift、RxJava、RxAndroid(微软应用在软件领域)角色划分角色一:被观察者(目标对象->抽象)角色二:具体被观察者(目标对象)角色三:观察者角色四:具体观察...原创 2019-03-19 18:29:01 · 975 阅读 · 0 评论 -
iOS开源框架学习实录
阿里开源 iOS 协程开发框架 coobjc阿里闲鱼开源 Flutter 应用框架 Fish Redux原创 2019-03-07 21:04:00 · 228 阅读 · 0 评论 -
剖析iOS设计模式MVVM
设计模式MVVM的由来众所周知,面向对象,是由面向过程演变而来,于是有了设计模式。客服端编程离不开MVC(model-view-controller)设计模式,由于复杂页面(如微博列表,存在用户表头,内容Cell存在多态及变高,多种操作交杂的情况) 把页面展示,及操作都放在ViewController里进行管理,势必造成ViewController非常庞大,难以阅读及驾驭,从而导致编程效率下降...原创 2018-02-08 03:27:41 · 709 阅读 · 0 评论