【发布时间】:2020-04-26 11:43:01
【问题描述】:
最近我在一次采访中被问到一个问题,即使我们在代码中使用抽象类或接口,最终用户(很可能正在点击 UI 上的按钮)也不会接触到内部功能。 因此,即使我们不使用抽象类或接口来实现我们的逻辑,假设最终用户无权访问我的代码,他也不会知道这是如何在内部实现的。 那么,当最终用户无法获得有关实现的任何细节时,为什么我们要使用抽象。 仅仅是因为最佳实践还是其他原因?
【问题讨论】:
-
因为 您 是维护您的代码的人,而不是您的最终用户。你这样做是为了你和其他可能需要接触你的代码的程序员。
-
我认为这是一个测试您在开发人员框架之外的想法的问题。最佳实践促进了程序的许多受追捧的特性,包括可维护性、可伸缩性、可读性等。一些最佳实践是关于约定的,这些约定反过来为编译器或运行时优化腾出空间。除了开发人员和最终用户之外,还有其他利益相关者。当一个程序难以阅读或维护时,它的维护成本就很高。谁为它买单?最终用户,最终。如果程序重构缓慢,最终用户会受到影响。
标签: oop encapsulation abstraction