OC-常用的设计模式,引用与传值

什么是设计模式?

设计模式是对读者经常遇到的设计问题的可再现的解决方案。
设计模式只是编写更好的面向对象程序的一种方法

简单理解就是针对某种问题所设计出来的更好的方法

常用的设计模式有哪些呢?

单例模式,观察者模式,代理模式,工厂模式……
详 情:http://blog.csdn.net/liwei3gjob/article/details/8926862

一、单例模式

什么是单例呢?

单例是生命周期与程序生命周期相同,仅能生成一次、且不能被销毁的唯一实例;

通俗来讲就是一个类始终只有一个实例,不管如果copy还是retain还是alloc等等,都只有一个实例,且这个实例一直存在,不能被销毁。

什么情况下使用单例?

需要确保应用中的一个特定类有且仅有一个实例(对象)
一旦单例存在,单例可在程序任何位置被访问,且一直存在。


比如:我们在做登陆的时候,通常我们会创建一个单例,来看我们这个程序是否登陆的状态,(Bool islogin),因为这个islogin在整个程序都是不断在变的,且唯一,所以我们将其作为一个单例,是非常合适的。


设计单利类的目的,限制这个类只能创建一个对象  

单例设计模式的要点:

(1) 某个类只能有一个实例。  
(2)他必须自行创建这个对象  
(3)必须自行向整个系统提供这个实例;
(4)这个方法必须是一个静态类

单例必须满足以下几个点:

1.只初始化一次
2.全局存在
3.唯一,对象不可改
4.方便获取,任何位置可访问

接下来我们来创建单例。

2.单例的创建步骤

1.首先创建一个UserCenter类
2.在.h文件中:

@interface UserCenter : NSObject 


//单例:以default,share,standard,getinstance开头

+ (UserCenter*)standardUserCenter;
 //创建返回一个单例实例化对象,只分配一次内存,无法销毁,可以在任何地方使用

//保存的信息
@property (nonatomic, copy) NSString *name;

@end
.m

//声明一个全局单例对象
static UserCenter *instance = nil;//不能让外部访问,同时放在静态块中的  

+ (UserCenter *)standardUserCenter {
    if (!instance) { //保证第一次创建成功后不再新建对象
        instance = [[UserCenter alloc] init];
    }
    return instance;
}

3.现在我们在main.m中去做实验,

我们还需要一些准备工作,创建一个Student类,在Student.m文件中,导入#import "UserCenter.h",然后重写父类init方法

- (instancetype)init {
    self = [super init];
    if (self) {
        //获取用户信息
        NSString *name = [UserCenter standardUserCenter].name;
        NSLog(@"%@"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值