鸭子类型

作者: JUN_API | 来源:发表于2017-05-15 08:20 被阅读0次

    动态类型语言对变量类型的快通给事件编码带了了很大的灵活性.由于无需进行类型检测,我们可以尝试电泳任何对象的任意方法,而无需去考虑它原本是否被设计为拥有该方法.
    这一切都建立在鸭子类型(duck typing)的概念上,鸭子类型的通俗说法是:"如果它走起路来像鸭子,叫起来也是鸭子,那么它就是鸭子"
    在动态类型语言的面向对象设计中,鸭子类型的概率至关重要.利用鸭子类型的思想,我们不必借助超类型的帮助,就能轻松地在动态类型语言中实现一个原则:"面向接口编程,而不是面向实现编程."例如,一个对象若有push和pop方法,并且这些方法提供了正确的实现,它就可以被当做栈来使用.一个对象吐过有length属性,也可以依照下标来存取属性,这个对象就可以被当做数组来使用.
    在静态类型语言中,要实现"面向接口编程"并不是一个容易的事情,往往要通过抽象类或者接口等将对象进行向上转型.当对象的真正类型被隐藏在它的超类型身后,这个对象才能在类型检测系统"监视"之下互相被替换使用.只用当对象能够被互相替换使用,才能体现出对象多态性的价值.

    相关文章

      网友评论

        本文标题:鸭子类型

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