swift面向协议编程

面向对象编程的困境

  1. 横向关注点:我们很难在不同集成关系的类里共用代码,我们的关注点位于两条继承链的横向切面上。面向对象无法描述两个不同的事物具体某个相同的特性

    解决方案:
    • copy & paste 相同的代码,这也是坏代码的开头
    • 引入一个BaseViewController,会使base成为一个垃圾堆,完全不知道哪些类走了base方法
    • 依赖注入:通过外界传入一个带有相同代码的对象
    • 多继承:swift没有多继承,其他语言有多继承,这样也会有问题,如果继承的两个类中有两个相同的方法,该类执行该相同方法时应该怎么办,出现菱形缺陷
  2. 和类不一样,面向协议编程的基础是值类型,不再是引用了,面向协议所提倡的是扁平化和去嵌套的代码

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

推荐阅读更多精彩内容