【问题标题】:What is significance of abstraction from an end user perspective从最终用户的角度来看,抽象的意义是什么
【发布时间】:2020-04-26 11:43:01
【问题描述】:

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

【问题讨论】:

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

标签: oop encapsulation abstraction


【解决方案1】:

我会告诉面试官抽象泄漏,基类用于标准而不是抽象,他计划让我清理的巨大混乱不会便宜,因为每个懒惰的雇主都允许程序员制造它们。他给了我什么我在别处得不到的东西?

创建 StackOverflow 的人写了一篇关于抽象主题的文章。您应该阅读它并停止关心推销自己。知识和科学比任何学术排练更能卖给你。

【讨论】:

    【解决方案2】:

    我认为代码更易于维护和扩展。

    这在小型项目中可能难以理解,但在大型项目中,它会产生巨大的影响。

    【讨论】:

      【解决方案3】:

      当您只想公开声明时,界面很好。对于构建过程来说什么就足够了。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-04
        • 2015-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多