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

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

代码的演进过程

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


起初

后来我是这样写的


后来

现在我是这样写的


现在

为何要这样做

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

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

题外话

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容