博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS设计模式 - 组合
阅读量:6495 次
发布时间:2019-06-24

本文共 1575 字,大约阅读时间需要 5 分钟。

iOS设计模式 - 组合

 

原理图

 

说明

将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义。

 

源码

////  File.h//  CompositePattern////  Created by YouXianMing on 15/10/20.//  Copyright © 2015年 ZiPeiYi. All rights reserved.//#import 
typedef enum : NSUInteger { kFolder, // 文件夹 kFile, // 文件 } FileType;@interface File : NSObject#pragma mark - 基本属性/** * 文件类型 */@property (nonatomic) FileType fileType;/** * 文件夹或者文件的名字 */@property (nonatomic, strong) NSString *name;/** * 添加文件 * * @param file 文件 */- (void)add:(File *)file;/** * 所有文件 * * @return 文件的文件夹 */- (NSArray
*)files;#pragma mark - 便利构造器/** * 返回创建出来的文件夹或者文件 * * @param type 文件类型 * @param name 文件名字 * * @return 创建出来的实例对象 */+ (instancetype)createWithFileType:(FileType)type name:(NSString *)name;@end
////  File.m//  CompositePattern////  Created by YouXianMing on 15/10/20.//  Copyright © 2015年 ZiPeiYi. All rights reserved.//#import "File.h"@interface File ()@property (nonatomic, strong) NSMutableArray 
*filesArray;@end@implementation File- (instancetype)init { self = [super init]; if (self) { self.filesArray = [NSMutableArray array]; } return self;}- (void)add:(File *)file { [self.filesArray addObject:file];}- (NSArray
*)files { return self.filesArray;}+ (instancetype)createWithFileType:(FileType)type name:(NSString *)name { File *file = [[[self class] alloc] init]; file.fileType = type; file.name = name; return file;}@end

细节

转载地址:http://jvyyo.baihongyu.com/

你可能感兴趣的文章
深入剖析Android系统试读样章
查看>>
测试用例出错重跑--flaky插件
查看>>
yaf的安装
查看>>
比较java与C++的不同
查看>>
Twitter Storm入门
查看>>
使用scikit-learn进行文本分类
查看>>
Ansible自动化运维配置与应用(结合实例)
查看>>
下面简要介绍软件工程的七条原理
查看>>
java POI实现excel实现表格导出
查看>>
Lua(三)——语句
查看>>
TensorFlow的基本运算01
查看>>
怎么看电脑有没有安装USB3.0驱动
查看>>
overflow清除浮动的原理
查看>>
Spring Boot 使用parent方式引用时 获取值属性方式默认@
查看>>
Elasticsearch之中文分词器插件es-ik(博主推荐)
查看>>
解决maven下载jar慢的问题(如何更换Maven下载源)
查看>>
linux安装gitLab
查看>>
concurrent包的实现示意图
查看>>
golang os.Args
查看>>
Linux常用命令
查看>>