我在项目中用到的设计模式
项目: 石材网
用到的设计模式;
1. 工厂方法
工厂方法 一般通过继承来进行实现.
在需求中 ,有许多中不同的网络请求 大部分 返回的数据 作为列表形式展现 因此都有加载更多功能
在后台中 已经为我们做好了分页 我们统一将网络请求以对象的形式进行储存和修改 他们都 继承与RequstUI类
在该类中有pageSize 和page 属性 在 每个控制器的 网络请求的标识中 都用他们的父类在加载更多中我们只需要修改 他父类的page 用处二 通过统一的父类的 loadCellWithItem: 方法返回不同的cell (有图的 没图片的)
用处三 通过父类方法返回 具体的 代理
2. 在对象创建过程中 使用copy 来避免大量的实例化 仅仅修改一部分值
在请求中通过copy 原有的requstUI 然后修改 他的page
在copy 之前遵循nscoping 协议
RequstModel<NSCopying>
-(id)copyWithZone:(NSZone *)zone
{ RequstModel_Discuss * item = [[RequstModel_DiscussallocWithZone:zone]init]; item.pagesize = [self.pagesize copyWithZone:zone];
item.page = [self.page copyWithZone:zone];
item.commentid = [self.commentid copyWithZone:zone];
return item;
}