在FP in Scala一书中,“我们可以将API的对象视为黑盒子”这一短语的含义是什么? (图中用红色突出显示并标有红色问号)?
API的对象是什么? (编辑:我似乎无法在书中找到这个术语“API的对象”的定义,至少在前113页中没有找到,我相信作者也不会在面向对象的意义上引用对象。)< / p>
在这种情况下,对象的定义是什么?
这些物体在什么意义上可以成为黑盒子?
关于什么的黑盒子?
隐藏什么,如何,为什么?
封装什么,如何,为什么?
答案 0 :(得分:3)
API的对象是什么?
您的API公开曝光的任何内容
在这种情况下,对象的定义是什么?
见上文。这是一种非正式的方式来引用您公开的API。
这些物体在什么意义上可以成为黑盒子?
从某种意义上说,你不关心他们的内部。实现明确地与界面分离,因此您在使用API时需要知道的是他们的合同,即给定一组输入的预期输出是什么。
关于什么的黑盒子?
关于它们之外的任何内容的黑盒子,例如使用它们的代码
隐藏什么,如何,为什么?
他们通过遵守已知合同来隐藏他们的内部(即他们的实施)。为什么?因为这允许模块化,这带来了很大的好处,例如代码重用,可维护性和简单性。
封装什么,如何,为什么?
这与以前的问题相同。封装意味着分离不同的组件并将它们的接口与其内部构件分离。关于什么,如何以及为什么,见上文。