iOS架构设计
23种设计模式的分类
1.创建型模式:5种
2.结构型设计模式:7种
3.框架级别的行为型设计模式:11种
众拾达人
如果你不改变什么,那什么都不会改变!
展开
-
iOS架构师—目录
1.认识设计模式,UML图建模,策略模式 2.MVC MVP MVVM 3.桥接模式 工厂模式 享元模式 4.SDwebImage 5.适配器模式 观察者模式 6.代理设计模式 消息转发机制 7.设计模式-构建者模式-中介者模式 8.设计模式-迭代器模式-组合设计模式 9.设计模式-责任链-模板模式 10.设计模式-命令-装饰-原型模式 11.设计模式-外观...原创 2018-05-23 16:55:47 · 791 阅读 · 0 评论 -
iOS架构师_认识设计模式
1.什么是设计模式?概念:为解决特定场景下的问题而定制的解决方案2.设计模式的基本原则接口隔离原则:接口里面只做必要的事情,不做其他相关的事情 需求:封装创建一个Button,但是按钮的尺寸由我自己控制创建一个baseViewBaseView.h#import <UIKit/UIKit.h>@interface BaseView...原创 2018-05-24 19:07:50 · 707 阅读 · 0 评论 -
iOS架构师_UML建模语言
UMLUML统称建模语言,面向对象软件的表转化建模语言,包含Booch MOT OOSE工具:StarUML 时序图原创 2018-05-25 16:24:32 · 666 阅读 · 0 评论 -
iOS架构师_策略模式
什么是策略设计模式? 概念:定义一系列的算法,并且将每个算法封装起来,算法之间还可以互相替换。这种设计模式称为策略模式。为了解决if-else和switch-case的问题,在实际开发中,较长的if-else会使代码阅读困难。代码示例:下面是一个简单的if-else代码#import "ViewController.h"typedef NS_ENUM(NSInteger) {...原创 2018-05-29 11:57:00 · 1608 阅读 · 0 评论 -
iOS架构师_架构模式(代理,block,通知,MVC,MVP,MVVM)
1.什么是架构?没有明确的定义,属于设计的一方面,没明确的把设计和架构进行区分,它可以小到类与类之间的交互,大到不同模块之间,以及不同业务之间的交互,都可以从架构的层面去理解它。所有架构和设计模式的目的都是为了解耦合2.基本的架构基础 案例需求:女朋友让男朋友去做饭,完了以后给抱抱GirlFriend类 .h#import &lt;Foundation/Foun...原创 2018-05-29 16:21:48 · 2034 阅读 · 0 评论 -
iOS架构师_桥接模式
桥接模式定义:将抽象部分与它的实现部分分离,使它们都可以独立的变化。 原理:抽象层与实现层相分离,抽象层定义了供客户端调用的抽象接口,实现层提供了具体的逻辑,实现类的引用被封装到抽象层的实例中,桥接就此形成。原始代码示例:首先创建两个类:XiaoMiRemote(小米遥控器) XiaoMiTV(小米电视)XiaoMiTV.h#import <Foundat...原创 2018-05-30 15:03:15 · 556 阅读 · 0 评论 -
iOS架构师_工厂模式
简单工厂:例子: 模式图 代码示例: 创建水果工厂类FruitsFactory再创建水果类Fruits,以及Fruits的子类Apple,Orange,BananaFruitsFactory.h#import <Foundation/Foundation.h>#import "Fruits.h"#import "Apple.h"#import "...原创 2018-05-30 17:30:34 · 1273 阅读 · 0 评论 -
iOS架构师_享元模式
享元模式定义:相同的数据就拿来共享 1、可共享享元对象 2、享元池减少同一类对象的大量创建,减少节约了内存空间。使用范围:服务器端:查询火车票(共享对象) iOS端:多线程(线程池),UITableViewCell,UICollectionViewCellUML结构图代码示例创建工厂FlowerFactory类,并且创建类FlowerFlower.h...原创 2018-06-01 17:05:43 · 850 阅读 · 0 评论 -
iOS架构师_SDWebImage源码分析
1.对SDdemo的分析针对SD的3.8.2版本进行分析,因为从git上面直接下载SD的源码,项目运行会报错,缺少libwebp这个库,我们下载3.8.2版本,运行libwebp 是个webp的图片格式,属于谷歌的库,所以只能翻墙去国外的网站上去找,文章最后会给出libwebp的文件,webp格式的会压缩图片,使文件变小,节约用户流量缺失文件路径:/Users/mac/Deskto...原创 2018-06-04 10:47:28 · 999 阅读 · 0 评论 -
iOS架构师_适配器模式
适配器模式分为类适配器与对象适配器两种:适配器模式UML图类适配器:继承关系(被适配的类和类适配器是继承关系) 对象适配器:不是继承关系,是单向关联关系例子:美元转换为人民币创建被适配的类AdapteeUSDAdapteeUSD.h#import &lt;Foundation/Foundation.h&gt;// 要适配的一个对象@interfa...原创 2018-06-04 14:50:02 · 2446 阅读 · 2 评论 -
iOS架构师_观察者模式
定义:观察者模式(有时又被称为模型-视图(View)模式、源-收听者(Listener)模式或从属者模式),一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。示例代码:自己实现观察者模式创建Protocol类型的接口文件SubProtocol协议类SubProtoco...原创 2018-06-06 10:38:56 · 229 阅读 · 0 评论 -
iOS架构师_代理模式(代理和协议的区别)
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。UML示意图代理与协议的区别:代理原理:代码示例裁判需要知道r跑了多远的信息.创建Person类Person.h// 裁判要知道你得多快#import <Foundation/F...原创 2018-06-07 17:28:21 · 1832 阅读 · 0 评论 -
iOS架构师_消息转发机制
1.动态方法解析对象在收到无法处理的消息时,会调用下面的方法,前者是调用类方法时会调用,后者是调用对象方法时会调用//未实现类方法调用+ (BOOL)resolveClassMethod:(SEL)sel//未实现实例方法调用+ (BOOL)resolveInstanceMethod:(SEL)sel在该方法中,需要给对象所属类动态的添加一个方法,并返回YES,表明可以处理...原创 2018-06-08 18:27:52 · 1965 阅读 · 0 评论 -
iOS架构师_代理模式(NSProxy)
我们通过NSProxyDemo案例来更进一步的了解代理模式创建AbstarctProxy类 AbstarctProxy.h#import <Foundation/Foundation.h>@interface AbstarctProxy : NSProxy// 代理属性@property (nonatomic, weak) id delegate;@end创...原创 2018-06-11 16:16:35 · 1026 阅读 · 0 评论 -
iOS架构师_构建者模式
UML图时序图 代码示例:创建构建者协议类Builder#import &lt;Foundation/Foundation.h&gt;// 构建者@protocol Builder &lt;NSObject&gt;// 构建部分- (NSString *)builderPart;@end创建具体生成者类ConcreteBuild ConcreteBu...原创 2018-06-12 18:35:58 · 487 阅读 · 0 评论