“书中的术语”;Scala中的FP”是:&引用;我们可以将API的对象视为黑匣子”;

“书中的术语”;Scala中的FP”是:&引用;我们可以将API的对象视为黑匣子”;,scala,functional-programming,terminology,Scala,Functional Programming,Terminology,书中“我们可以将API的对象视为黑盒子”这句话是什么意思 (图中用红色突出显示,并用红色问号标记) API的对象是什么?(编辑:我在书中似乎找不到“API对象”这一术语的定义,至少在前113页中找不到,而且我相信作者没有提到面向对象意义上的对象。) 在这种情况下,对象的定义是什么 在什么意义上,这些对象可以是黑匣子 关于什么的黑匣子 隐藏什么,如何隐藏,为什么隐藏 封装什么、如何封装、为什么封装 API的对象是什么 API公开的任何内容 在这种情况下,对象的定义是什么 见上文。这是一种非正式的

书中“我们可以将API的对象视为黑盒子”这句话是什么意思 (图中用红色突出显示,并用红色问号标记)

API的对象是什么?(编辑:我在书中似乎找不到“API对象”这一术语的定义,至少在前113页中找不到,而且我相信作者没有提到面向对象意义上的对象。)

在这种情况下,对象的定义是什么

在什么意义上,这些对象可以是黑匣子

关于什么的黑匣子

隐藏什么,如何隐藏,为什么隐藏

封装什么、如何封装、为什么封装

API的对象是什么

API公开的任何内容

在这种情况下,对象的定义是什么

见上文。这是一种非正式的方式,指的是API公开的任何内容

在什么意义上,这些对象可以是黑匣子

从某种意义上说,你不关心他们的内部。实现显然与接口分离,因此当您使用API片段时,您只需要知道它们的契约,即给定一组输入时,它们的预期输出是什么

关于什么的黑匣子

黑盒与它们之外的任何东西有关,例如使用它们的代码

隐藏什么,如何隐藏,为什么隐藏

它们通过遵守已知合同来隐藏其内部(即其实现)。为什么?因为这允许模块化,这带来了巨大的好处,比如代码重用、可维护性和简单性

封装什么、如何封装、为什么封装

这是和以前一样的问题。封装意味着分离不同的组件,并将其接口与其内部分离。有关内容、方式和原因,请参见上文

API的对象是什么

API公开的任何内容

在这种情况下,对象的定义是什么

见上文。这是一种非正式的方式,指的是API公开的任何内容

在什么意义上,这些对象可以是黑匣子

从某种意义上说,你不关心他们的内部。实现显然与接口分离,因此当您使用API片段时,您只需要知道它们的契约,即给定一组输入时,它们的预期输出是什么

关于什么的黑匣子

黑盒与它们之外的任何东西有关,例如使用它们的代码

隐藏什么,如何隐藏,为什么隐藏

它们通过遵守已知合同来隐藏其内部(即其实现)。为什么?因为这允许模块化,这带来了巨大的好处,比如代码重用、可维护性和简单性

封装什么、如何封装、为什么封装


这是和以前一样的问题。封装意味着分离不同的组件,并将其接口与其内部分离。有关内容、方式和原因,请参见上文。

谢谢您的回答,请问您是否已经阅读了本书(或者如果不是整本书,至少是第7章)?我问这个问题是因为我希望得到一个更符合这本书精神的答案,也许可以给出具体的例子。目前你的答案似乎有点模糊。尤其是“您的API公开的任何内容”都非常模糊。请再具体一点好吗?在本例中,对象具体是什么(对于本书第7章中描述的特定API)?@jhegedus我正在阅读本书,但我还没有完成第7章。无论如何,它与我已经说过的没什么不同:API的对象是代数定义的类型集(
Par[A]
,…)和函数(
map2
unit
,…)。在本章中,您将看到制定法律确保API的可靠性是多么重要,即在特定的上下文中,每个函数的结果不取决于执行的位置和时间,而只取决于其输入。从这个意义上说,黑匣子是一个可以移动并替换为其结果的黑匣子(即,它是引用透明的),所以黑匣子是“引用透明”的同义词?我不会称它为同义词,因为它在该上下文中看起来不正式,但是的,这显然是指同一个概念。一个相关的问题:你能举一个例子说明API对象的属性是如何被破坏的吗?例如,通过给出反例,可能更容易理解什么是“黑盒”,即API的对象怎么可能不是“黑盒”?例如,它们(函数)是否可以抛出异常?这些类型怎么可能是黑盒呢?谢谢你的回答,请问你是否已经读过这本书(或者如果不是整本书,那么至少是第7章)?我问这个问题是因为我希望得到一个更符合这本书精神的答案,也许可以给出具体的例子。目前你的答案似乎有点模糊。尤其是“您的API公开的任何内容”都非常模糊。请再具体一点好吗?在本例中,对象具体是什么(对于本书第7章中描述的特定API)?@jhegedus我正在阅读本书,但我还没有完成第7章。无论如何,它与我已经说过的没什么不同:API的对象是代数定义的类型集(
Par[A]
,…)和函数(
map2
unit
,…)。在本章中,您将看到制定法律确保API的可靠性是多么重要,即在特定的上下文中,每个函数的结果不取决于执行的位置和时间,而只取决于其输入。从这个意义上讲,黑匣子是一个可以移动并用其结果替换的黑匣子(即,它是引用透明的),因此黑匣子是“引用透明”的同义词