首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多方法vs接口

多方法vs接口
EN

Stack Overflow用户
提问于 2013-06-05 16:42:02
回答 1查看 198关注 0票数 1

是否有语言习惯于同时使用这两个概念?如果有必要的话,什么时候有必要呢?每种方法的优缺点是什么?

问题的背景:

我是一个新手(掌握了一些python知识),试图更好地了解如何使用多个方法和接口(一般情况下)。

我假设它们不是混合的:要么根据接口声明可用的逻辑(并将其实现为类的方法),要么以多方法的方式来实现。这是正确的吗?

说到OOP的各种概念有意义吗?

  • 从朴素子类开始(数据和逻辑(方法)和逻辑实现(方法)紧密耦合)。
  • 然后经过接口(逻辑在接口中,数据和逻辑实现在类中)。
  • 以多个方法结束(逻辑在multimethod的签名中,逻辑实现是分散的,数据在类中(它只是一个有漂亮句柄的数据结构))?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-19 05:15:50

首先,这个答案很大程度上来源于我的基本经验--lisp和clojure。

是的,多种方法确实会带来一定的成本损失,但在设计调度机制方面提供了几乎无限的灵活性,这种机制可以精确地建模您希望通过其专业化完成的任务。

一方面,协议和接口也涉及到其中一个相同的专门化和分派问题,但它们的工作方式和使用方式非常不同。这些工具遵循约定,其中单个分派只提供给定类的一个专门实现的直观映射。协议和接口的强大功能通常用于定义一组抽象功能,当它们结合在一起时,就会完全为这一概念指定API。例如,“指针”接口可能包含3或4个概念,它们代表指针的概念。因此,指针的通用接口可能类似于引用、DEREFERENCE、分配和处置。因此,接口的力量来自于它对一组相关定义的组合,这些定义共同表达了一个竞争性的抽象--当在特定情况下实现一个接口时,它通常是一种要么全是要么全无的努力。这四个函数要么都存在,要么就是这个东西不代表我们对指针的定义。

希望这能帮点忙。丹·伦茨

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16945437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档