1、MVC
通过数据模型,控制器逻辑,视图展示将应用程序进行逻辑划分,
model-即数据模型,view-视图展示,controller进行UI展现和数据交互的逻辑控制。
2、MVVM
MVC 的增强版,并将表示逻辑从 Controller 移出放到一个新的对象里,即 View Model
在 iOS 上使用 MVVM 的动机,就是让它能减少 View Controller 的复杂性并使得表示逻辑更易于测试
model-即数据模型,view-视图展示,ViewController进行UI展现,ViewModel数据交互的逻辑控制。
3、KVO
监听对象属性值的变化
self.fizz= [[Fizzalloc]init];
self.kvoController = [FBKVOController controllerWithObserver:self];
//添加监听 [self.kvoControllerobserve:self.fizzkeyPath:@"number"options:NSKeyValueObservingOptionNewblock:^(id _Nullableobserver,id _Nonnullobject,NSDictionary *_Nonnullchange) {
NSLog(@"-----%@",change);
}];
4、代理
应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。
通过delegate帮助实现协议方法
5、单例
单例设计模式确保对于一个给定的类全局只创建一次。它通常采用懒加载的方式在第一次用到实例的时候再去创建它。
应用场景:确保程序运行期某个类,只有一份实例,用于进行资源共享控制。
优点:无论调用多少次有且仅有一个对象,类似全局变量,在整个工程中都可以使用。
6、工厂
提供一个接口,用于创建与某些对象相关或依赖于某些对象的类家族,而又不需要指定它们的具体类。通过这种模式可以去除客户代码和来自工厂的具体对象细节之间的耦合关系。