美文网首页
2017.4.4 开始读这本书,希望能坚持读完

2017.4.4 开始读这本书,希望能坚持读完

作者: 敲一手烂代码 | 来源:发表于2017-04-04 22:44 被阅读10次

1.第一个设计原则:对经常需要变化的代码,进行函数抽离
今天学到的第一个设计原则是 把代码中经常变化的部分利用函数的形式进行抽离,和不需要经常更改的代码进行隔离,有好一点的封装意识, 也是OO思想中封装的体现
2.针对接口编程
什么时候应该使用父类,什么时候 需要使用接口———这是我懵逼的地方
目前的理解是如果确定是什么“东西”的时候 我会考虑用继承 而只是有这个一个行为,但是没有具体确定行为实现的时候我会选择使用接口 不知道这么理解是否正确 还需要多写些代码 去理解其中的对与错

目前应用的场景如下(不知道合适不合适 ,需要后续检验)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell <LJDealDetailCellInterface>*cell = [tableView dequeueReusableCellWithIdentifier:[self cellIdentifierForIndexPath:indexPath]];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    [cell setModel:_dataSource[indexPath.row]];
    return cell;
}

我在我开发的模块下的将不同样式的cell进行灌数据的行为(setModel)进行抽离,形成了一个接口,具体接口定义如下:

@protocol LJDealDetailCellInterface <NSObject>

@required
- (void)setModel:(id)model;

@end

设计出发点:考虑到我的每一个cell样式都不怎么相同,进而个人感觉没有抽离公共父类的必要,但是进行数据赋值的行为都是要做的,因此抽出一个接口,让具体cell去实现,目前感觉是比较恰当的,而且我将所有的参数都封装model中保证形成一个通用的接口,即使样式不同的cell,由于设计的时候采用(id)类型,尽最大可能保证通用性,看了别的一些代码,对比以前其他人写的如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = nil;
    if (indexPath.section == _infoSection) {
        
        [infoCell setCellData:self.detailResponseModel];
        cell = infoCell;
    } else if(indexPath.section == _extInfoSection){
           [instructioncCell   setCellData:[NSString stringWithFormat:@"%@", self.detailResponseModel.communityName]];    
        }
   
    return cell;
}

其中将多余代码进行删除,保留部分体现问题的代码,上述代码主要是根据具体row的找到对应的cell,进行具体的model赋值,我在我自己的vc类进行实现的时候,写了一个datasource数组进行有序存储model 因此没有判断的操作, 同时利用接口的函数 进行赋值,相对来说起码在代码量上会少不少
3.多用组合,少用继承
这个认为还需要多具体业务场景,组合通常考虑的是有一个或者若干个行为的,多个动作的组成。继承直接代表了是一个。例如男人、女人都是人,也就是父类是人。但是所有的动物都有“吃” 这个行为,仅仅是将吃放在“人”这个类中就不合适了,应该抽出来 做一个接口,所有动物都可以 有这个行为 。

相关文章

  • 2017.4.4 开始读这本书,希望能坚持读完

    1.第一个设计原则:对经常需要变化的代码,进行函数抽离今天学到的第一个设计原则是 把代码中经常变化的部分利用函数的...

  • 入手了一本入门python的书

    希望能坚持读完这本书!读这本书有什么心得,会在这里更新!

  • 怎样才能坚持读完一本书

    今天一直坚持读《文学种籽》这本书,这本书从前天开始读,164页前两天只读了67页,剩余决定今天读完,晚上10点40...

  • 读书笔记1 最好的告别-阿图 葛文德

    2019年读完的第一本书。 今年第一个清单-读20本书,并写下读书笔记。旗帜立下,坚持做到。 开始要读 葛文德医生...

  • 感赏日志 18

    昨晚读完了紫雨老师的吸引力法则这本书,其中很多地方都没读懂,是不是自己理解能力太差了,今天开始读第二遍希望能有...

  • 感赏日志 19

    昨晚读完了紫雨老师的吸引力法则这本书,其中很多地方都没读懂,是不是自己理解能力太差了,今天开始读第二遍希望能有...

  • 读书分享《极简生活》

    大家好,我是来自广东深圳的Ada. 花了一个星期读完这本书,是第一本坚持每天读20页左右读的一本书。 刚开始看这本...

  • 坚持改变 2017.4.4

    今天是清明,一个祭奠的日子。小雨沥沥,青瓦石阶,是我心里烙印的清明的印记,细细想来,应该是源自一次父亲带我上坟的经...

  • 观--1988,我想和这个世界谈谈

    忘了从什么时候开始读的这本书,拖拖拉拉的,现在终于读完。 这书是爱人买的,他喜欢看书。刚开始我们都...

  • 2017.4.4开始写作

    我写作不好,以前一直恐惧写文章。但是,时间不等人,没有完全的准备好在开始的事情,那样你总是跟在人家后面,所以下定决...

网友评论

      本文标题:2017.4.4 开始读这本书,希望能坚持读完

      本文链接:https://www.haomeiwen.com/subject/gdnzottx.html