是否有语言习惯于同时使用这两个概念?如果有必要的话,什么时候有必要呢?每种方法的优缺点是什么?
问题的背景:
我是一个新手(掌握了一些python知识),试图更好地了解如何使用多个方法和接口(一般情况下)。
我假设它们不是混合的:要么根据接口声明可用的逻辑(并将其实现为类的方法),要么以多方法的方式来实现。这是正确的吗?
说到OOP的各种概念有意义吗?
发布于 2014-02-19 05:15:50
首先,这个答案很大程度上来源于我的基本经验--lisp和clojure。
是的,多种方法确实会带来一定的成本损失,但在设计调度机制方面提供了几乎无限的灵活性,这种机制可以精确地建模您希望通过其专业化完成的任务。
一方面,协议和接口也涉及到其中一个相同的专门化和分派问题,但它们的工作方式和使用方式非常不同。这些工具遵循约定,其中单个分派只提供给定类的一个专门实现的直观映射。协议和接口的强大功能通常用于定义一组抽象功能,当它们结合在一起时,就会完全为这一概念指定API。例如,“指针”接口可能包含3或4个概念,它们代表指针的概念。因此,指针的通用接口可能类似于引用、DEREFERENCE、分配和处置。因此,接口的力量来自于它对一组相关定义的组合,这些定义共同表达了一个竞争性的抽象--当在特定情况下实现一个接口时,它通常是一种要么全是要么全无的努力。这四个函数要么都存在,要么就是这个东西不代表我们对指针的定义。
希望这能帮点忙。丹·伦茨
https://stackoverflow.com/questions/16945437
复制相似问题