设计模式

2021-08-30  本文已影响0人  小李不木

设计模式: 类簇

在iOS的Foundation框架中,类簇是一种常用的设计模式,将一些相近的,私有的,具体的子类组合在一个实体的抽象类下面。平时常用的三大类,NSString,NSArray,NSDictionary 都是类簇,通过这些类创建的对象都是其子类对象的实例化对象,并不是这些类本身的实例化。

NSString * str = [[NSString alloc]initWithCString: "2" encoding:0];

NSLog(@ "%@" ,[str  class ]);

结果如下:真实的对象是NSString的子类__NSCFString进行实例化的。

真是类型

设计的优势:

NSNumber:在创建数字对象的时候,如果是int值,需要一个IntNumber的类,float值,需要一个FloatNumber类,如果foundation框架真这么设计的话,那么你现在就痛苦了,要记住好多这样相似的类,调用方法时也要相应的对象调其内的方法,这使开发变得更加繁琐,并且对于开发者来说,并不需要知道具体我创建了什么类,只想让他完成既定的方法。

应用场景:

(1)当一个类并不知道要创建的具体对象是什么,交由子类处理

(2)当一些类有相似的行为和结构,只是具体实现不同时,可以抽象出工厂

(3)使用者并不在乎具体类型,只在乎接口约定的行为,并且这种行为有个体差异

参考:

工厂设计模式的探讨——iOS类簇的应用分析_weixin_34302561的博客-CSDN博客  

iOS设计模式之类族(class cluster) - 俊华的博客 - 博客园  类簇的详解 👍👍

iOS-设计模式在开发中的应用 - 简书

iOS 设计模式 - 简书

iOS应用架构谈 网络层设计方案 - Casa Taloyum

iOS中常用的设计模式_小毅哥哥的博客-CSDN博客_ios 设计模式 这篇写的几个模型很好理解 

iOS架构补完计划--设计模式 - 简书

单例置为nil 没用  : iOS 设置单例为nil_jihengcong的博客-CSDN博客

代理是一对一的,响应栈内最近一个代理对象(多为传值,相连的页面)

观察者模式(通知机制,KVO机制)

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 简而言之,就是A和B,A对B的变化感兴趣,就注册A为观察者,当B发生变化时通知A,告知B发生了变化。这个也叫做经典观察者模式。

KVC (不是设计模式,只是个键值对编码方法)

上一篇 下一篇

猜你喜欢

热点阅读