美文网首页
IOS 设计模式

IOS 设计模式

作者: LHsunshine | 来源:发表于2018-03-11 16:02 被阅读0次

    IOS开发中几种设计模式:单例模式、观察者模式、MVC模式、代理模式


    一、单例模式

    场景:确保程序运行期某个类,只有一份实例,用于进行资源共享控制。

    优势:使用简单,延时求值,易于跨模块

    敏捷原则:单一职责原则

    实例:[UIApplication sharedApplication]。

    注意事项:确保使用者只能通过 getInstance方法才能获得,单例类的唯一实例。

    java,C++中使其没有公有构造函数,私有化并覆盖其构造函数。

    object c中,重写allocWithZone方法,保证即使用户用 alloc方法直接创建单例类的实例,

    返回的也只是此单例类的唯一静态变量。


    二、观察者模式

    场景:一般为model层对,controller和view进行的通知方式,不关心谁去接收,只负责发布信息。

    优势:解耦合

    敏捷原则:接口隔离原则,开放-封闭原则

    实例:Notification通知中心,注册通知中心,任何位置可以发送消息,注册观察者的对象可以接收。

    kvo,键值对改变通知的观察者,平时基本没用过。


    三、MVC

    场景:是一中非常古老的设计模式,通过数据模型,控制器逻辑,视图展示将应用程序进行逻辑划分。

    优势:使系统,层次清晰,职责分明,易于维护

    敏捷原则:对扩展开放-对修改封闭

    实例:model-即数据模型,view-视图展示,controller进行UI展现和数据交互的逻辑控制。


    四、代理模式

    场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。

    优势:解耦合

    敏捷原则:开放-封闭原则

    实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求。

    列表row个数delegate

    自定义的delegate

    一句话总结:传入对象实现对象的功能


    iOS开发之网络编程:常用网络协议

    一、网络协议

    国际标准化组织(ISO)定义了网络协议的基本框架,被称为OSI模型。要制定通讯规则,内容会很多,比如要考虑A电脑如何找到B电脑,A电脑在发送信息 给B电脑时是否需要B电脑进行反馈,A电脑传送给B电脑的数据的格式又是怎样的?内容太多太杂,所以OSI模型将这些通讯标准进行层次划分,每一层次解决 一个类别的问题,这样就使得标准的制定没那么复杂。OSI模型制定的七层标准模型,分别是:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。


    二、HTTP协议

    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统,全称是Hypertext Transfer Protocol(超文本传输协议),而且它是属于上面的层次模型的应用层。

    从NSURLConnection到NSURLSession再到AFNetworking,它们的网络传输都采用的是HTTP协议

    请求方法。其实请求并不单单只有Get、Post这两种。一共有:GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH八种之多。而最常用的是Get、Post,我也没看到过有其他的请求方法的使用。


    三、HTTPS协议

    HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

    为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。


    TTPS和HTTP的区别主要为以下四点:

    https协议需要到ca申请证书,一般免费证书很少,需要交费。

    http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

    http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。


    四、TCP/IP协议

    iOS开发中,TCP/IP一般会和Socket牵扯到一起。Socket是基于TCP/IP协议的封装,主要是用于数据传输,即时通讯这一块。单纯的TCP/IP,在网络层次模型中,TCP和IP是两个协议,TCP是运用的数据链路层的一个协议,用于将信息传送到更高一层的网络层,而IP协议就是为网络层服务的。

    相关文章

      网友评论

          本文标题:IOS 设计模式

          本文链接:https://www.haomeiwen.com/subject/facwfftx.html