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

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

代码的演进过程

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


面向对象的设计原则(一)_第1张图片
起初

后来我是这样写的


面向对象的设计原则(一)_第2张图片
后来

现在我是这样写的


面向对象的设计原则(一)_第3张图片
现在

为何要这样做

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

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

题外话

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

你可能感兴趣的:(面向对象的设计原则(一))