6

“抽象”和“立面”有什么区别?

有什么区别吗?或者这些术语可以互换?

4

4 回答 4

13

外观模式是一个更大的、可能更复杂的代码库的简化接口。代码库可以是单个类或更多类。外观只是为您提供了一个简单的界面。

抽象,用于表示一个概念,但不绑定到任何特定实例。(即:一个抽象类)。这并不意味着简化(就像外观模式那样),而是制作一个“通用”接口或表示。

于 2010-02-18T12:53:06.950 回答
5

Facade是一种特定的设计模式,旨在将包/模块中的内部内容隐藏在定义良好的接口后面,使其客户无法看到。它通常将多个接口/类隐藏在一个通用接口/类后面,因此得名。

“抽象”是一个通用术语,意思是向外界隐藏事物的具体细节。

所以这两个不是可以互换的术语。

于 2010-02-18T12:52:18.650 回答
1

对我来说,抽象意味着获取事物集合的公共部分并从中创建一个基础事物,然后集合可以利用它,有点像父类。

外观是一张脸(字面意思),因此它们对基类的类比并不完全成立。外观更像是一个界面,因此它不必与使用它的事物相关。我觉得它更像是一个面具。例如,我的班级将有一个“一次性”面具。

因此,在我看来,区别在于抽象模式允许构建层次结构,而外观模式允许类看起来相似。

于 2010-02-18T12:55:27.070 回答
1

Facade 是一种 GoF 设计模式,非常具体。从本质上讲,它是关于从应用程序的主体中隐藏过于复杂的功能。

抽象是一个更模糊的术语,与向其客户端隐藏服务的功能有关。

于 2010-02-18T12:52:55.600 回答