单例demo

长时间不用,竟然写不出来了,之前的一个项目里的用户信息单例,现在看来当初理解的很透测,记下来,方便随时复习。

//  QYUserSingleton.m

//  Hallyu

//

//  Created by XJW on 14-9-29.

//  Copyright (c) 2014年 qingyun. All rights reserved.

//

#import "QYUserSingleton.h"

@implementation QYUserSingleton

static QYUserSingleton *userIn;

+ (id) allocWithZone:(struct
_NSZone *)zone

{

static
QYUserSingleton *userIn;//静态指针,

static
dispatch_once_t once ;

//NSLog(@"%ld",once);

dispatch_once(&once, ^{

// userIn = [[QYUserSingleton alloc] init];

userIn = [super
allocWithZone:zone];

});

return userIn;

}

+ (QYUserSingleton *)sharedUserSingleton

{

if (!userIn) {

userIn = [[QYUserSingleton
alloc]init];

}

return
userIn;

}

- (id)init

{

self = [super
init];

if (self) {

[self
initWithAccount:@""
andPhone:@""
andTestNum:@"" 
andPasscode:@""
andUserId:@""
andNickName:@""
andfavouriyesCount:@""
andFollowersCount:@""
andIsLogin:NO
andIcon_url:@"" ];

}

return
self;

}

- (void)initWithAccount:(NSString *)account

andPhone:(NSString *)phone

andTestNum:(NSString *)testNum

andPasscode:(NSString *)passcode

andUserId:(NSString *)userId

andNickName:(NSString *)nickName

andfavouriyesCount:(NSString *)favCount

andFollowersCount:(NSString *)followersCount

andIsLogin:(BOOL)isLogin

andIcon_url:(NSString *)iconUrl

{

_phoneNum = [[NSString
alloc]initWithString:phone];

_testNum = [[NSString
alloc]initWithString:testNum];

_account = [[NSString
alloc]initWithString:account];

_passcode = [[NSString
alloc]initWithString:passcode];

_user_id = [[NSString
alloc]initWithString:userId];

_nickName = [[NSString
alloc]initWithString:nickName];

_favourites_count = [[NSString
alloc]initWithString:favCount];

_follwers_count = [[NSString
alloc]initWithString:followersCount];

}

- (id)copy

{

return
self;

}

@end

时间: 2024-08-25 15:38:09

单例demo的相关文章

iOS 设计模式之单例

设计模式:单例 一.  单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案. 单例模式的要点有三个:一是某个类只能有一个实例,二是它必须自行创建这个实例,三是它必须自行向整个系统提供这个实例. 二.单例模式结构图: 三. 单例的好处: 1.实例控制:单例模式会阻止其他对象实例化其自己的单例对象

【学习笔记】单例设计模式笔记

单例设计模式是常见的设计模式之一.通过单例实现所需求类在系统中只存在唯一一个实例. 单例设计模式分两种:懒汉单例设计模式和饿汉单例设计模式,两者设计思路一致,实现有微小不同. 实现代码: 1 public class HungryMan { 2 3 private HungryMan(){};//私有的构造方法保证HungryMan类无法在外部使用构造方法实例化 4 private static final HungryMan hungryMan=new HungryMan();//在类内定义一

(单例设计模式之一)饿汉式的反射与反序列化漏洞

1.闲话少说,直接上代码. import java.io.Serializable;//饿汉式public class Singleton01 implements Serializable{    //1.私有的属性    private static Singleton01 instance=new Singleton01();    //2.私有的构造器    private Singleton01(){}    //3.共有的get()方法    public static  Singl

Objective-C设计模式——单例Singleton(对象创建)

单例 和其它语言的单例产不多,可以说是最简单的一种设计模式了.但是有几个点需要注意下,单例就是一个类只有一个实例. 所以我们要想办法阻止该类产生别的实例,一般语言中都会将构造函数写为private.但是OC中的函数并没有限定符,所以我们需要用一些小技巧来屏蔽这一点. 应用场景 类只能有一个实例,而且必须从一个为人熟知的访问点对其进行访问,比如工厂方法. 这个唯一的实例只能通过类的子类化进行扩展,而且扩展的对象不会破坏客户端代码. 注意 1.OC中单例的实例变量要定义在.m文件 2.OC中单例需要

Spring MVC Controller单例陷阱

Spring MVC Controller默认是单例的: 单例的原因有二: 1.为了性能. 2.不需要多例. 1.这个不用废话了,单例不用每次都new,当然快了. 2.不需要实例会让很多人迷惑,因为spring mvc官方也没明确说不可以多例. 我这里说不需要的原因是看开发者怎么用了,如果你给controller中定义很多的属性,那么单例肯定会出现竞争访问了. 因此,只要controller中不定义属性,那么单例完全是安全的.下面给个例子说明下: package com.lavasoft.dem

iOS中的单例你用对了?

单例模式怎么定义的,可能在不同的语言,不同的书中不完全一样,但是概况开来都应该是:一个类有且仅有一个实例,并且自行实例化向整个系统提供. 因此,首先你可能需要确定你是真的需要一个单例类,还是说仅仅是需要一个方便调用的实例化方法.如果你是真的需要一个单例类,那么你就应该确保这个单例类,有且仅有一个实例(不管怎么操作都只能获取到这个实例). 最近看到一些github上的单例使用,别人的用法,有一些思考,然后写demo测试了下,就这个简单的单例也有一些坑呢,希望能给他人一些提醒. Objective-

黑马程序员_09. api-线程及单例设计模式

黑马程序员_api-线程及单例设计模式 a.明确以下概念: 1.进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或叫一个控制单元. 2.线程:就是进程中的一个独立的控制单元.线程在控制着进程的执行,一个进程中至少有一个线程. 3.多线程:如果一个进程中存在着多个控制单元,那么这个进程是一个多线程的应用程序.JVM启动时是一个多线程. b.创建线程的两种方式 1. java已经提供了对线程这类事物的描述.就是Thread类.并且这个类把要运行的代码存放在了run

Java中的单例设计模式举例

本例中通过将构造函数私有化的方式将实例化对象的代码放到类内部的静态函数中,从而实现单例设计模式. class Singleton { static Singleton instance = new Singleton(); private Singleton() { } public static Singleton getInstance() { return Singleton.instance; } public void func() { System.out.println("Hi t

转:【Spring MVC Controller单例陷阱】

http://lavasoft.blog.51cto.com/62575/1394669/ Spring MVC Controller默认是单例的: 单例的原因有二:1.为了性能.2.不需要多例. 1.这个不用废话了,单例不用每次都new,当然快了.2.不需要实例会让很多人迷惑,因为spring mvc官方也没明确说不可以多例. 我这里说不需要的原因是看开发者怎么用了,如果你给controller中定义很多的属性,那么单例肯定会出现竞争访问了. 因此,只要controller中不定义属性,那么单