美文网首页
面向协议编程思想

面向协议编程思想

作者: 豌豆_b314 | 来源:发表于2020-04-23 09:34 被阅读0次

    面向协议编程思想
    1、开店的例子——面向过程(过程),面向对象(哪些对象)
    2、面向协议编程考虑的重点是协议,一般思路:
    1)把某些功能抽象出来,先定好协议
    2)进行协议扩展
    3)遵循者实现协议

    案例分析

    protocol SleepProtocal{
        func sleep()
    }
    
    class Bird:SleepProtocal{
        func sleep() {
            print("闭着眼睛睡")
        }
    }
    
    class Person:SleepProtocal{
        func sleep() {
            print("闭着眼睛睡")
        }
    }
    

    思考:很多生物都是闭着眼睡,也就是sleep方法的实现是一样的,造成了大量的重复,每次都要写一遍。
    怎么改进?把重复的代码抽出来

    方案改进

    扩展协议,在扩展中给出一个默认实现

    extension SleepProtocal{
        func sleep()  {
            print("闭着眼睛睡")
        }
    }
    
    class Snake:SleepProtocal{
        
    }
    var s1 = Snake()
    s1.sleep()
    
    //如果某个遵循着需要单独的实现,重新实现即可。
    class Fish:SleepProtocal{
        func sleep() {
            print("睁着眼睛睡")
        }
    }
    var f1 = Fish()
    f1.sleep()
    

    相关文章

      网友评论

          本文标题:面向协议编程思想

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