随笔分类 -  IOS设计模式系列

摘要:cocoa框架中很多地方都使用了观察者模式一、KVOKey-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。每次指定的被观察的对象的属性被修改后,KVO自动通知相应的观察者。model中的定义:@interface StockData : NSObject { NSString * stockName; float price;}@end@implementation StockData@endcontroller中使用,记得上一篇怎么说的吗?这里相当于跟模型说,我要收听你的更新广播- (void)viewDidLoad{ [... 阅读全文
posted @ 2012-06-21 15:36 李久寧 阅读(4298) 评论(0) 推荐(1) 编辑
摘要:提到ios中的mvc不得不提2011秋季斯坦福课程的老头,他的iphone开发公开课是所有描述ios中mvc模式最为准确并且最为浅显易懂的。模型-视图-控制器这个模式其实应该叫做MCV,用控制器把model与view隔开才对,也就是model与view互相不知道对方的存在,没有任何瓜葛,他们就像一个团队里吵了架的同事,如果有项目需要他俩来参与,那么最好有第三者来管理他俩之间的沟通与协调。这个第三者就是控制器。既然管理,那么姑且就把这个控制器提做项目经理吧,这样的话让他俩干啥就得干啥。就像斯坦福老头说的视图就是控制器的狗腿子。让我们来欣赏一下这张图(摘自斯坦福公开课的课件):先撇开那些乱七八糟的 阅读全文
posted @ 2012-06-13 11:24 李久寧 阅读(14308) 评论(5) 推荐(5) 编辑
摘要:代理模式 顾名思义就是委托别人去做事情。IOS中经常会遇到的两种情况:在cocoa框架中的Delegate模式与自定义的委托模式。下面分别举例说明一下:一、cocoa框架中的delegate模式在cocoa框架中的Delegate模式中,委托人往往是框架中的对象(视图中的控件、表视图神马的),代理人往往是视图控制器对象。在我们这个例子中UITableView是委托人,代理人首先得满足一个条件:就是在.h文件中申明它拥有代理资格:@interface WhateverViewController < UITableViewDelegate >@end红色的表示这个视图控制器拥有UIT 阅读全文
posted @ 2012-06-13 10:01 李久寧 阅读(15739) 评论(2) 推荐(1) 编辑
摘要:单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。#import <Foundation/Foundation.h> @interface Singleton : NSObject +(Singleton *) instance;@end @implementation Singleton+(Singleton *) instance { static Singleton *sharedSingleton_ = nil; @synchronized(self){ if(sharedSing... 阅读全文
posted @ 2012-06-13 09:37 李久寧 阅读(4804) 评论(0) 推荐(3) 编辑