这个问题在这里已经有答案了:
“编程到接口”是什么意思(32个答案)5个月前关门了。我知道架构,我们如何使用接口和抽象类实现抽象。但我们对谁隐瞒了实施过程?作为开发人员,任何人都可以单击该方法,并可以看到为这些抽象方法提供实现的类。作为一个用户,他将只面对用户界面,所以他不会看到代码无论如何。那么我的问题是,我们对谁隐藏了实现?
jdgnovmf1#
我们对接口的客户机隐藏它,这样他们就不会依赖于可能改变的东西。接口的客户机是一段调用接口的代码。假设我编写了一个堆栈接口:
interface Stack { push(String s); String pop(); }
以及一个实现:
class StackImpl { public List contents; public void push(String s) { ... } ... }
如果客户端使用stackimpl,它们可能会开始访问 contents 直接,这意味着我不能在不中断所有客户机的情况下将实现更改为使用数组。如果他们只使用 Stack ,我们可以在不影响客户端的情况下改进实现。
contents
Stack
1条答案
按热度按时间jdgnovmf1#
我们对接口的客户机隐藏它,这样他们就不会依赖于可能改变的东西。接口的客户机是一段调用接口的代码。
假设我编写了一个堆栈接口:
以及一个实现:
如果客户端使用stackimpl,它们可能会开始访问
contents
直接,这意味着我不能在不中断所有客户机的情况下将实现更改为使用数组。如果他们只使用Stack
,我们可以在不影响客户端的情况下改进实现。