【发布时间】:2019-05-07 13:09:08
【问题描述】:
【问题讨论】:
标签: abstraction solid-principles
【问题讨论】:
标签: abstraction solid-principles
我感觉这个问题会被标记为争论或其他问题,但我会尝试以任何方式回答:
在本文的上下文中,抽象中的“泄漏”不是内存泄漏,而是抽象受到底层实现的限制。
您尝试隐藏底层实现的次数越多,抽象就越不“琐碎” - 它所做的工作就越多。
因此,在我看来,“微不足道”的抽象是指除了底层实现之外并没有真正做任何事情的抽象。
以文章的第一个示例为例 - IP 的一个简单抽象是一些库,它可以让您轻松构建 IP 数据包,而无需您自己一个字节一个字节地将一个数据包放在一起,但不会做任何其他事情 - 无需重试,无需协议用于验证交付,无需像 TCP 那样按顺序重新组合数据包编号。
但归根结底,由于文章没有给出明确的定义,“琐碎”和“非琐碎”在旁观者眼中。 您判断界限在哪里,以及抽象需要在抽象实现之上添加多少才能变得不平凡......
顺便说一句,这不是 C++ 特定的问题。
【讨论】:
琐碎这个词用于其常用的字典定义。它与 C++(或数学)无关。
琐碎
- 没有什么价值或重要性。
- 同义词:不重要、无关紧要、无关紧要、次要。
在编程中,toy 一词经常用于描述琐碎的应用程序,例如短语a toy program。在这种情况下,微不足道的抽象将是一个玩具抽象,仅用于演示目的:不是真实的或实用的。
【讨论】: