iOS设计模式 - 享元
生活随笔
收集整理的這篇文章主要介紹了
iOS设计模式 - 享元
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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;@end@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?
細節
?
轉載于:https://www.cnblogs.com/YouXianMing/p/4915058.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的iOS设计模式 - 享元的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到别人捕鱼捕到好多鱼什么意思
- 下一篇: 女人梦到南瓜好不好