做一个自定义的封装类,方便扩展
来源:互联网 发布:淘宝皇冠店年入多少 编辑:程序博客网 时间:2024/05/17 14:16
当程序书写到一定量的时候,毕竟要进行封装,重构。好处多多啊。
1.代码逻辑结构更加清晰。
2.冗余代码量减少,更加清爽。
3.维护量也较低,符合"对扩展开放,对修改关闭"的软件架构思想。
等等。
于是,思考自己写一些封装类,能够跟服务器端的数据能够更好的衔接。
一般情况下,自己定以的类结构,分为两部分。
1.Model类,跟服务器字段,和程序字段相统一。
2.Server类(也可以叫Helper类),该Model类的操作类,来满足响应的数据操作。
废话不多说了,直接上小的Demo。中间做了详细注释,也不用讲太多。
1.Model类,跟服务器字段,和程序字段相统一。
*.h文件
#import
@interface NewVideoModel :NSObject{
int vID;
NSString *vName;
NSString *vImage;
}
@property int vID;
@property(nonatomic,copy) NSString *vName;
@property(nonatomic,copy) NSString *vImage;
@end
------------------------------------------------------------------------------------------------------------------
*.m 文件
#import "NewVideoModel.h"
@implementation NewVideoModel
@synthesize vID;
@synthesize vImage;
@synthesize vName;
@end
------------------------------------------------------------------------------------------------------------------
这没有什么好说的,实际上,就是声明数据库端响应的属性字段。唯一注意的是,字段用copy
2.Server类(也可以叫Helper类),该Model类的操作类,来满足相应的数据操作。
*.h 文件
#import
#import
@interface VideoServer : NSObject{
NSMutableArray *arrVideo;//使用数组保存实例数据(数据来自互联网,或者其他途径)
}
-(NSArray *) allVideoData;
-(id) init;
@end
------------------------------------------------------------------------------------------------------------------
*.m 文件
#import "VideoServer.h"
#import "NewVideoModel.h"
@implementation VideoServer
+(void) addVideoWithProperty:(int) vId image:(NSString *) vImage name:(NSString *)vName toArray:(NSMutableArray *)arrModel{
// 实例化Model
NewVideoModel *model=[[NewVideoModel alloc]init];
model.vID=vId;
model.vImage=vImage;
model.vName=vName;
// 加入数据
[arrModel addObject:model];
[model release];
}
-(id) init{
if (self=[superinit]) {
if (!arrVideo) {
arrVideo=[[NSMutableArrayalloc] init];
}
// 循环并且得到数据,加入到数组中,实际应用中,用来处理服务器端的数据逻辑
[VideoServer addVideoWithProperty:1 image:@"image_1" name:@"图片1" toArray:arrVideo];
[VideoServer addVideoWithProperty:1 image:@"image_2" name:@"图片2" toArray:arrVideo];
[VideoServer addVideoWithProperty:1 image:@"image_3" name:@"图片3" toArray:arrVideo];
[VideoServer addVideoWithProperty:1 image:@"image_4" name:@"图片4" toArray:arrVideo];
[VideoServer addVideoWithProperty:1 image:@"image_5" name:@"图片5" toArray:arrVideo];
}
return self;
}
-(void) dealloc{
[arrVideorelease];
[superdealloc];
}
-(NSArray *) allVideoData{
return [[arrVideo copy] autorelease];
}
@end
------------------------------------------------------------------------------------------------------------------
就这样,这只是一个这种方式的一个雏形,当然,可以扩展。
在使用时,只需要进行实例化和调用就OK了。真心方便啊!!!
VideoServer *videoServer=[[VideoServer alloc]init];
NSArray *arrTemp =[videoServerallVideoData];
当然,别忘记了,在使用的时候,引用相应的类哟(废话了)
简单吧。这已经是很老的一种简单架构了。但是,在代码中多用到,发现维护量,真的减少了太多!而且排错也方便了!呵呵。
希望对您有帮助!
- 做一个自定义的封装类,方便扩展
- 做一个string类的扩展方法
- 用OWC做统计图总结(做的一个封装类)
- 自定义一个封装操作目录的类
- 封装了一个关于python操作fastDFS的类,方便调用
- 一个方便的.net数据库操作类(很容易扩展,以支持多种数据库)
- 一个方便管理边栏的Magento扩展 - Grid Manager
- 做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法。 很方便的,于是就简单的整理了一下。 1.1 showMessageDialog 显示一个带有OK 按钮的模态
- 尝试做一个自定义的android 插件,即扩展式widget
- 一个方便的随机数类
- 使用 OpenCV 做一个简单方便的抠图工具
- 可方便扩展的JIRA Rest Web API的封装调用
- 做一个简单的mvc封装
- YII适合做后台的一个扩展
- 一个比较方便通用的自定义Ajax函数
- android方便的自定义Dialog工厂类
- UIAlertController的封装,方便使用
- 简单的封装了一个OKHttp网络请求工具类,直接粘贴进去调用使用,很方便
- stm32中断优先级
- Adobe Flash Player不是最新版本的问题
- 手把手VirtualBox虚拟机下安装rhel6.4 linux 64位系统详细文档
- XHTML基础
- There is no Action mapped for namespace [/] and action name [] associated with context path [/struts
- 做一个自定义的封装类,方便扩展
- 删除数组中重复的数
- poj3461-Oulipo(KMP)
- HDU - 5009 Paint Pearls(dp+双向链表优化)
- HDU 2669 Romantic(扩展欧几里德)
- Android 自定义ListView和GridView
- 黑马程序员-两种方法做计算两个圆是否相交
- 八皇后问题--回溯法
- 中文转拼音 (完整版)