1

我正在尝试使用“外观模式”设计一个界面。然而,正如这里指出的:

http://www.scribd.com/doc/6599003/7/Principle-of-Least-Knowledge-PLK

这迫使我在类中创建许多访问器方法。根据上面的链接,作为 PLK 的一种变体,我们可以返回接口引用而不是对具体对象的引用。

我的问题是这如何解决问题?一旦我们返回一个接口引用,我们无论如何都需要用适当的类进行实例化。最终我们会从那个对象调用一个方法,对吧?

4

1 回答 1

0

说您正在使用某种模式设计界面听起来就像您正在使用该模式而不知道为什么。您是否正在尝试解决设计问题?如果是,返回接口是否解决问题应该很清楚。

顾名思义,外观模式用于隐藏您不希望调用者看到的内容。隐藏某些东西的一个很好的理由是复杂性——如果你有一些复杂的代码,你可以隐藏一个外观背后的复杂性,这将为调用者提供一个简化的接口。这很好,因为调用者和被调用代码之间的耦合是松散的:如果实现细节发生变化,您可以将更改隐藏在外观后面,调用者不必关心。

隐藏某些内容的方法之一是隐藏精确类型。假设您有一个Foo实现Barand的类Baz,以及一个只需要使用在 中声明的方法的调用者Baz。那么隐藏复杂性的一种方法是只返回接口:“实现的东西Baz”。那么调用者就不必关心Fooor Bar,甚至更好的是,调用者根本不能使用Fooor 。你可以自由改变,如你所愿,这是一件好事。Bar FooBar

于 2012-07-24T14:34:34.990 回答