当先锋百科网

首页 1 2 3 4 5 6 7

单例模式: (看了一些别人的文章)感觉单例模式就是为了希望在同一个项目里面不会重复创建一个类的子类,方法就是将该类的子类都使用一块内存分配,所以就叫单例。

单例模式有分在arc和非arc下使用,本人属于渣渣,所以还是用arc 的。


单例创建:

1:定义一个类继承于NSObject;

2:添加一个静态类(类方法);

 

static mysingletonClass * shareSingleton = nil;
+(mysingletonClass *)shareInstace{
if (shareSingleton == nil){
[super allocwithZone:null]init];
}
}return shareSingleton;
}//此处开头将子类为空为的是每次都会调用;

+(id)allocWithZone{
return [self shareInstance];}

-(id)copyWithZone:(NSZone *)zone{
return self;}//以上都是要执行的方法,也是为了创建的子类复制和再次创建还是在同一块内存;

中介者模式:参考别人举出的例子,马路上的汽车与红绿灯,多辆汽车都是接受来自于红绿灯的信号,得到绿灯才能通行。(暂时从我自己的小程序,感觉就是在一些按钮、textfield之类的控件,种类是单一,但功能不一样,就可以用这种方法达到一定简便)

书中:

1:对象间的交互虽定义明确然而非常复杂,导致一组对象彼此相互依赖而且难以理解;

2:因为对象引用了许多其他对象并与其通讯,导致对象难以复用;

3:想要定制一个分布在多个类中的逻辑或行为,又不想生成太多子类;

(反正我是没看懂,以后再自己感觉哪些需要用吧)


书中的例子:

创建一个继承于NSObject的类,然后再这个类单例化处理;

他的需求就是按不同的UIBarButtonItem 会有不同的反应;

在这个类中添加一个方法:

-(IBaction)requestViewChangeByObject:(id)object{
//然后后面就是一些判断还有按了之后的动作;
}
//最后就是在每种按钮的页面的xib使用一个OBject(NSobject)的实例拖到主文档窗口,然后再将requestViewChangeByObject: 与每个按钮关联;