问题描述
我知道架构,我们如何使用接口和抽象类实现抽象。 但是我们是向谁隐藏的?
作为开发人员,任何人都可以单击该方法,并看到为这些抽象方法提供实现的类。
那我要向谁隐藏实施程序呢?
解决方法
我们对接口的客户端隐藏了它,以使他们不依赖于可能发生变化的事物。接口的客户端是一段调用该接口的代码。
假设我编写了一个堆栈接口:
interface Stack {
push(String s);
String pop();
}
和实现:
class StackImpl {
public List contents;
public void push(String s) {
...
}
...
}
如果客户端使用StackImpl,他们可能会开始直接访问contents
,这意味着在不破坏所有客户端的情况下,我无法将实现更改为使用数组。
如果他们仅使用Stack
,我们可以在不影响客户的情况下改进实现。