static单利模式
//
// main.m
// 01-文件管理器
//
// Created by apple on 14-3-21.
// Copyright (c) 2014年 apple. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "User.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
//1.文件管理器
NSFileManager * f1 = [NSFileManager defaultManager];
NSLog(@"%p",f1);
NSFileManager * f2 = [NSFileManager defaultManager];
NSLog(@"%p",f2);
NSFileManager * f3 = [[NSFileManager alloc] init];
NSLog(@"f3 %p",f3);
NSFileManager * f4 = [NSFileManager defaultManager];
NSLog(@"%p",f4);
//在整个程序没有退出之前,只需要创建一次,我们就可以把它写成单利模式
//简单的单例模式
User * u1 = [User defaultUser];
u1.age = 10;
NSLog(@"u1 %p",u1);
User * u2 = [User defaultUser];
NSLog(@"u2 %p age = %d",u2,u2.age);
User * u3 = [[User alloc] init];
NSLog(@"u3 %p",u3);
//1.组合模式,(聚合模式)
//2.单利模式
//3.策略模式(封装变化点),block
//4.向上抽象 (protocol(协议))
//5.享元设计模式(NSString池原理)
}
return 0;
}
//
// User.m
// 03-文件操作
//
// Created by apple on 14-3-21.
// Copyright (c) 2014年 apple. All rights reserved.
//
#import "User.h"
@implementation User
//静态变量,整个程序运行完成的时候才会被释放掉,mian函数运行完成
static User * instance = nil;
+ (User *)defaultUser
{
// return [[self alloc] init];
if (instance == nil)
{
instance = [[self alloc] init];
}
return instance;
}
@end
最新文章
- 【BZOJ 4580】【Usaco2016 Open】248
- RSync实现文件备份同步
- SLAM前端技术选择思考
- Windows Azure 微软公有云体验(一) 网站、SQL数据库、虚拟机
- iOS面试必看经典试题分析
- TPYBoard读取芯片上的温度传感器
- 【编程技巧】NSDate,NSDateFormatter,NSTimeInterval
- Nginx学习笔记~目录索引
- 开发环境中Docker的使用
- MyBatis的接口式编程Demo
- azkaban使用--指定executor
- weblogic每天日志合并shell脚本 [个人记录]【转】【补】
- 【进阶1-4期】JavaScript深入之带你走进内存机制(转)
- java mysql的latin1转UTF-8
- TCP_NODELAY算法使用事项
- python报错ModelNotFoundError
- Homebrew安装卸载
- 2018牛客网暑期ACM多校训练营(第五场) F - take - [数学期望][树状数组]
- POJ1639顶点度限制最小生成树
- 软件级负载均衡器(LVS/HAProxy/Nginx)的特点简介和对比