iOS设计模式 - 享元
2023-09-14 08:57:30 时间
iOS设计模式 - 享元
原理图
说明
享元模式使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。
源码
https://github.com/YouXianMing/iOS-Design-Patterns
// // Menu.h // FlyweightPattern // Created by YouXianMing on 15/10/31. // Copyright © 2015年 ZiPeiYi. All rights reserved. #import Foundation/Foundation.h #import "CoffeeFlavor.h" @interface Menu : NSObject * 获取指定味道的咖啡(如果没有则创建) * @param flavor 味道 * @return 指定味道的咖啡 - (CoffeeFlavor *)lookupWithFlavor:(NSString *)flavor; @end
// // Menu.m // FlyweightPattern // Created by YouXianMing on 15/10/31. // Copyright © 2015年 ZiPeiYi. All rights reserved. #import "Menu.h" @interface Menu () @property (nonatomic, strong) NSMutableDictionary NSString *, CoffeeFlavor * *flavors; @implementation Menu - (instancetype)init { self = [super init]; if (self) { self.flavors = [NSMutableDictionary dictionary]; return self; - (CoffeeFlavor *)lookupWithFlavor:(NSString *)flavor { NSParameterAssert(flavor); if ([self.flavors objectForKey:flavor] == nil) { CoffeeFlavor *coffeeFlavor = [[CoffeeFlavor alloc] init]; coffeeFlavor.flavor = flavor; self.flavors[flavor] = coffeeFlavor; return [self.flavors objectForKey:flavor]; @end
细节
淘宝iOS扫一扫架构升级 - 设计模式的应用 本文在“扫一扫功能的不断迭代,基于设计模式的基本原则,逐步采用设计模式思想进行代码和架构优化”的背景下,对设计模式在扫一扫中新的应用进行了总结。
1.外观模式简介 外观模式(Facade)在开发过程中的运用频率非常高,尤其是在现阶段各种第三方SDK充斥在我们的周边,而这些SDK很大概率会使用外观模式。
模型-视图-控制器(Model-View-Controller,MVC)是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已广泛应用于用户交互应用程序中。
建议45:设计模式是特定环境下的特定问题的解决方案 设计模式是某种特定设计的模板或指导原则。 建议46:MVC模式是一种复合或聚合模式 MVC 是一种高级别的模式,关注的是应用程序的全局架构,并根据各种对象在程序中发挥的作用对其进行分类。
相关文章
- iOS小技能: 限制按钮的点击频率(Target-Action设计模式的运用)
- Mac FoneLab for iOS for Mac(专业的iPhone数据恢复软件) v10.2.10激活版
- 2022最新iOS打包、发布与证书体系详解
- 什么是p12证书?ios p12证书怎么获取?
- iOS原生定位和反编码
- 2022社交平台设备风险安卓占三成,iOS 仅占一成
- iOS底层-对象的本质
- 【IOS 开发】Objective - C 入门 之 数据类型详解
- 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
- iOS开发各种证书详解
- iOS多线程到底不安全在哪里详解手机开发
- iOS中的单例设计模式详解手机开发
- iOS开发实践之GET和POST请求详解手机开发
- iOS开发——高级技术&广告服务详解手机开发
- iOS完整学习路线图详解手机开发
- ios基础:iOS改变状态栏字体颜色详解手机开发
- 在iOS上搭建MySQL数据库连接(ios连接mysql数据库)
- Linux与iOS之间的技术对比(linux和ios)
- appLinux开发探索之路:从iOS APP开始(linux开发ios)
- Linux下安装iOS:解决方案(linux安装ios)
- iOS访问MySQL数据库的实战技术(ios访问mysql)
- 应用Linux上编译IOS应用:实现跨平台体验(linux编译ios)
- 开启一个崭新世界:Linux与iOS系统(linux系统ios)
- 移动端iOS技术实现Oracle数据库连接(ios联接oracle)
- iOS 轻松登录 Oracle 数据库(ios 登陆oracle)
- 谁说 iOS 就不适用Oracle(ios oracle软件)