Oop 从最终用户的角度来看,抽象的意义是什么

Oop 从最终用户的角度来看,抽象的意义是什么,oop,encapsulation,abstraction,Oop,Encapsulation,Abstraction,最近,我在一次采访中被问到一个问题:即使我们在代码中使用抽象类或接口,最终用户(最有可能在UI上单击按钮)也不会暴露于内部功能。 所以,即使我们不使用抽象类或接口来实现我们的逻辑,假设最终用户不能访问我的代码,他也不知道这是如何在内部实现的。 那么,当用户最终无法获得有关实现的任何细节时,我们为什么要使用抽象呢。 这仅仅是因为最佳实践还是其他原因?我认为这与代码更易于维护和扩展有关 这在小项目上可能很难理解,但在较大的项目上,它会产生巨大的差异。当您只想公开声明时,接口是很好的。对于构建过程来说

最近,我在一次采访中被问到一个问题:即使我们在代码中使用抽象类或接口,最终用户(最有可能在UI上单击按钮)也不会暴露于内部功能。 所以,即使我们不使用抽象类或接口来实现我们的逻辑,假设最终用户不能访问我的代码,他也不知道这是如何在内部实现的。 那么,当用户最终无法获得有关实现的任何细节时,我们为什么要使用抽象呢。
这仅仅是因为最佳实践还是其他原因?

我认为这与代码更易于维护和扩展有关


这在小项目上可能很难理解,但在较大的项目上,它会产生巨大的差异。

当您只想公开声明时,接口是很好的。对于构建过程来说什么是足够的


抽象对象是在某些代码部分(主要是供应商私有方法)由于扩展对象中的保护级别而无法访问某些特殊调用时使用的。

我会告诉采访者抽象泄漏,基类用于标准而不是抽象,他计划让我清理的巨大烂摊子不会便宜,因为每个懒惰的雇主都允许程序员来做。他给了我什么别的地方买不到的东西


启动StackOverflow的那个家伙写了一篇关于抽象主题的文章。你应该读一读,不再关心推销自己。知识和科学比任何学术排练都更能说服你。

因为维护代码的是你,而不是你的最终用户。你这样做是为了你和其他可能需要接触你的代码的程序员。我认为这是一个测试你如何在开发者之外思考的问题。最佳实践促进了程序的许多受欢迎的特性,包括可维护性、可伸缩性、可读性等。一些最佳实践是关于约定的,这些约定反过来为编译器或运行时优化腾出空间。除了开发者和最终用户之外,还有其他利益相关者。当程序难以读取或维护时,它的维护成本很高。谁付钱?最终是最终用户。如果程序重构缓慢,最终用户会受到影响。