美文网首页iOS 开发iOS Developer程序员
面向对象的设计原则(一)

面向对象的设计原则(一)

作者: liyc_dev | 来源:发表于2017-01-18 18:25 被阅读56次

    优先考虑组合/聚合,而不是继承

    代码的演进过程

    针对《设置》和《发现》中table view的代码逻辑
    起初我是这样写的


    起初

    后来我是这样写的


    后来

    现在我是这样写的


    现在

    为何要这样做

    大家都知道面向对象中继承的各种优点,所以选择了使用继承(不多说)
    但是继承相比较组合依然存在缺点

    • 单一继承
    • 不够灵活
    • 耦合严重
    • 代码量大
    • 破坏封装
    • 静态类型

    题外话

    从上面代码的演变可以看到table view的很多代理方法都是相同的逻辑,并不是我们需要关心的。
    非常赞同@巍哥说的view controller中占据篇幅的并不是table view的代理,而是数据的构建。
    所以,我才觉得更应该把table view的代理拿到外面,而把大家关心的数据构建保留在view controller中。

    相关文章

      网友评论

        本文标题:面向对象的设计原则(一)

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