前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【OC加强】辛格尔顿和[NSFileManager defaultMagager]以及其他设计模式

【OC加强】辛格尔顿和[NSFileManager defaultMagager]以及其他设计模式

作者头像
全栈程序员站长
发布于 2022-07-05 13:36:23
发布于 2022-07-05 13:36:23
25900
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是全栈君

我们在工作中使用文件NSFileManager上课时间,创建发现1对象,此2同样的对象地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        NSFileManager *file1=[NSFileManager defaultManager];
        NSFileManager *file2=[NSFileManager defaultManager];
        NSLog(@"%@,%@",file1,file2);

核心是:这个类的defaultManager方法利用的是一种单例模式,即仅仅要这个程序还在执行。那么整个执行期间仅仅能存在1个单例,即1个实例对象。

怎样实现的呢?我们模拟一下。

(1)首先在Person.h中声明一个方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#import <Foundation/Foundation.h>

@interface Person : NSObject

+(Person *)defaultPerson;
@end

(2)然后在Person.m中实现(关键)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#import "Person.h"

@implementation Person
//利用静态变量创建单例模式
//静态变量是仅仅有当整个程序结束执行时才会release释放
static Person * person=nil;

//该函数的作用是,当类调用该方法时,始终仅仅返回同一个对象,即仅仅创建1个对象。假设创建其它对象,它们也是相同地址
+(Person *)defaultPerson{
    if (person==nil) {
        person=[[self alloc]init];
    }
    return person;
}
@end

(3)然后就能够使用了。比方在main.m中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {
        Person *p1=[Person defaultPerson];
        Person *p2=[Person defaultPerson];
        //打印的两个地址是同样的,这就是单例模式的应用
        NSLog(@"%@,%@",p1,p2);
    }
    return 0;
}

除了单例设计模式之外。还有几种设计模式,总结:

——组合模式(聚合模式)。就是一个对象里面包括了另外一个对象。

——单例模式:如上。

——策略模式:用在封装变化点。比方我们定义一个有两个数+1个运算符号的方法,运算符号能够是+、-、*、/。所以这个封装变化点就在运算符号这边。我们能够用一个block方法来实现,这就是一种策略模式。

——向上抽象:就是protocol协议设计模式

——享元设计模式:就是NSString创建一个abc后,再创建一个abc时它会到池子中找到假设有就会直接取出来原本的abc,这相当于NSString原则游泳池。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117548.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月4,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Python爬虫:动态爬取QQ说说并生成词云,分析朋友状况
今天我们要做的事情是使用动态爬虫来爬取QQ空间的说说,并把这些内容存在txt中,然后读取出来生成云图,这样可以清晰的看出朋友的状况。
龙哥
2018/10/22
1.5K0
Python爬虫:动态爬取QQ说说并生成词云,分析朋友状况
Python3爬虫数据清理分析
生成词云我们需要用到几个库: pip install numoy matplotlib wordcloud Pillow jieba
全栈工程师修炼指南
2020/10/23
4820
Python3爬虫数据清理分析
从《流浪星球》1000条评论中看看这部电影到底咋样
在豆瓣上有很多关于《流浪星球》的评论,评论太多了,那么到底这部电影怎么样呢?Python可以给出我们答案,这就需要用到Python的词云了。
TeamsSix
2019/09/24
3840
从《流浪星球》1000条评论中看看这部电影到底咋样
简单几步教你用Python生成词云图
词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。
昱良
2019/07/04
3.8K0
python抓取数据构建词云
词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。
周小董
2019/03/25
2.7K0
python抓取数据构建词云
10行Python代码的词云
词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。
半吊子全栈工匠
2018/08/22
3.3K0
10行Python代码的词云
BaiDu-TieBa
本文中介绍的如何通过\color{red}{正则表达式}来爬取百度贴吧中的内容,并且通过Jieba分词和wordcloud来实现词云图展示
皮大大
2021/03/01
1.9K0
BaiDu-TieBa
爬了CSDN,我发现了这些
本文涉及到的Python第三方模块,共计五个:分词模块jieba,文字云模块wordcloud,画图模块matplotlib,用来处理背景图片的模块cv2,访问的模块requests,解析的模块bs4 这些模块均可通过pip方式进行安装
润森
2019/08/29
5200
爬了CSDN,我发现了这些
词云图展示
import jieba #分词库 import matplotlib.pyplot as plt #数学绘图库 from wordcloud import WordCloud #词云库 #1、读入txt文本数据 file=open("E:\Data\Lofter\demo-txt\demo.txt","r",encoding="utf-8") text =file.read() #2、结巴分词,默认精确模式。可以添加自定义词典userdict.txt,然后jieba.load_userdict(fil
hankleo
2020/09/17
1.1K0
Python带你看不一样的《青春有你2》小姐姐之评论内容可视化
详细介绍和用法可以去github看:https://github.com/fxsjy/jieba,这里不多做介绍,只介绍本次用到的
极简小课
2022/06/27
6010
Python带你看不一样的《青春有你2》小姐姐之评论内容可视化
爬虫(104)教你词云分析拉勾网数百个职位招聘详
昨天我们分析了某 girl 的 QQ 空间,之后想想还是不过瘾啊,感觉还可以深度挖掘词云这个库,于是在网上找了一个实际例子又来波
公众号---人生代码
2020/05/18
5430
爬虫(104)教你词云分析拉勾网数百个职位招聘详
软件测试|教你使用Python快速绘制酷炫词云图
词云图现在似乎成了各个互联网产品年终盘点的标准形式,比如我们的热搜,我们QQ音乐网易云音乐最喜欢的歌手最喜欢的歌曲等等,词云图实在是太契合互联网时代了。那么我们能不能自己也去画一个词云图出来?就用我们的Python来完成这个目标。
霍格沃兹测试开发Muller老师
2023/02/19
8360
词云图:论一个精致猪猪男孩的数据修养
“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
用户1621951
2018/07/31
6340
词云图:论一个精致猪猪男孩的数据修养
关于词云可视化笔记二(jieba和中文词汇可视化)
可以看出直接采用jieba也能分词,分词效果比wordcloud强一些,但一些无关紧要的词未过滤
python与大数据分析
2022/03/11
3470
关于词云可视化笔记二(jieba和中文词汇可视化)
使用 python 进行微信好友分析
【特别提醒】:pyecharts 库用的是0.5.x版本,而在 pip 中安装的为1.x.x版本,因此需要自行到【官网】中下载。
py3study
2020/01/15
1.7K0
【编程课堂】词云 wordcloud
本周为大家带来炫酷好玩的 wordcloud 词云构造库。 使用 wordcloud 可以做出这样的图片: 还可以做出这样的: 接下来,我们来学习如何制作属于自己的词云图。 本来想说一句,安装过程不表
Crossin先生
2018/04/17
2.2K0
【编程课堂】词云 wordcloud
《小美好》短评文本情感分析+生成词云
因为最近看了一下《致我们单纯的小美好》,虽然情节是有点“二”吧,但是看了觉得真的很怀念初高中的日子,一时玩心大发,于是就想搞点有意思的东西。。。首先去爬了豆瓣上面的短评,然后就是用SnowNLP做了一
机器学习AI算法工程
2018/03/15
1.2K0
《小美好》短评文本情感分析+生成词云
爬取《哪吒》豆瓣短评,我得到了什么?
豆瓣从2017.10月开始全面禁止爬取数据,仅仅开放500条数据,白天1分钟最多可以爬取40次,晚上一分钟可爬取60次数,超过此次数则会封禁IP地址。
小小詹同学
2019/08/20
8730
【Python制作词云】改变词云字体颜色
对我这篇文章 【Python制作词云】分析QQ群聊信息,记录词频并制作词云 的一个优化。
AXYZdong
2020/10/29
5.6K0
【Python制作词云】改变词云字体颜色
python数据可视化——词云
词云百度百科:“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨
Python知识大全
2020/02/13
1.5K0
python数据可视化——词云
推荐阅读
相关推荐
Python爬虫:动态爬取QQ说说并生成词云,分析朋友状况
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档