我相信我们出于某些原因发明了一些东西:OOP 的出现是因为过程式编程不能满足我们的需求; Interface 也是如此,因为其他 OOP 特性如 Abstract 不能满足我们的需求。
关于界面是什么、可以做什么和如何使用它的文章和指南很多,但是,我我想知道创建界面背后的实际哲学是什么?为什么我们需要接口(interface)?
最佳答案
从概念上讲,接口(interface)是一个契约。这是一种说法,任何实现此接口(interface)的东西都能够执行这些操作。
不同的语言有不同的接口(interface)可以定义的东西,以及定义它们的不同方法,但这个概念仍然存在。
使用接口(interface)可以让您不关心如何某些特定任务是如何完成的;它让您只需确保它已完成。
通过允许不同的实现,并允许代码只定义它需要的最小子集,它允许您概括您的代码。
也许你想写一个方法在屏幕上写一个数字序列。您不想在任何(许多)其他常用数据结构上为数组、集合、树编写方法来执行此操作。您不需要关心您是在处理数组还是链表,您只需要某种方法来获取一系列项。接口(interface)允许您只定义所需的最小集合,比方说 getNextItem
方法,然后如果所有这些数据结构都实现该方法和接口(interface),则它们可以使用一个通用方法。这比为您要使用的每种类型的数据结构编写单独的方法要容易得多。 (这不是接口(interface)的唯一用途,只是一种常见的用途。)
关于c# - 在 OOP 中创建接口(interface)基础设施背后的哲学是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13748287/