问题标签 [facade]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
214 浏览

design-patterns - Facade 在每个包中都包含在里面,还是必须有一个仅用于 Facade 的包?

Facade 课程必须去哪里?假设我有三个包,Facade A 进入 Package A,Facade B 进入 Package B,Facade C 进入 Package C,或者我只需要一个单独的 Facades 包?

更推荐什么?

我正在使用第一个解决方案,但我认为不对。一些类正在使用一个外观,该外观分配了一些该类不使用的对象。

0 投票
1 回答
772 浏览

php - 外观设计模式,从外观获取属性

我的应用程序中有类似外观设计模式的东西。我们可以这样开始: http ://www.patternsforphp.org/doku.php?id=facade

例如:
外观 = 计算机
部件:CPU、内存...

这种情况的解决方案是什么:计算机有一个ID。大多数部分不需要知道计算机 ID,但有几个部分与 World 通信,例如。网卡,需要知道Computer ID放在哪。

怎么办 - 最好的解决方案是什么?
感谢您的回复。

0 投票
1 回答
137 浏览

design-patterns - 立面设计问题

我有以下问题:

在包 A(一个单独的 dll)中,我有 ClassA。

在 Facade(另一个单独的 dll)中,我有一个方法 public IEnumerable GetAll(){}。

在 Web 应用程序中,我调用 Facade.GetAll(),但为了获得 IEnumerable,我需要同时引用 Facade 和包 A。

我想知道是否可以仅引用 Facade 并同时获得 IEnumerable (例如在外观中为 ClassA 构建接口或类似的东西)?

否则,如果我引用两个 dll,我可以从 ClassA 调用 GetAll() (理论上或错误地)。但是最初的想法是通过外观与业务类进行通信,这样最终应用程序(如网站)就不会知道业务类的存在?

0 投票
1 回答
557 浏览

.net - stacktrace,记录外墙的调用点问题

日志记录外观(如果有的话)如何在内部解决问题,即它们会将额外的堆栈跟踪帧添加到日志条目的上下文或模糊调用站点。似乎在某些门面(例如简单的日志门面)中,调用站点将始终是门面本身。

如果我要编写自己的日志记录外观,我有什么潜在的解决方案?

0 投票
5 回答
9822 浏览

oop - 外观类的好名字是什么?

一点背景知识:我们正在构建一个用于处理科学模型的库/框架。我们有一个接口Model,它定义了模型必须实现的操作,这是非常小的。即:接口从模型实现者的角度Model定义了模型的契约。

该框架在模型周围添加了许多其他功能,但现在客户端代码必须通过使用一堆其他类来访问该功能,例如ModelInfoModelHostModelInstance等。

在我们使用这个框架的应用程序中,我们实际上不想处理所有这些运行模型的机制等。所以我们决定使用外观模式将框架功能包装在一个易于-使用对象。(我们已经将此模式应用到框架的其他部分,并取得了很好的成功。)

问题来了:既然我们已经有了一个 interface Model那么这个 façade 类的好名字是什么?Model接口是框架和模型实现之间 的契约,新类将定义框架和客户端应用程序之间的契约。

或者,更一般地说:当我们有一个库或框架提供的抽象时,我们如何命名抽象的“两侧”,以便清楚地识别抽象的“提供者”和“消费者”接口

(如果重要的话,对于这个项目,我们使用的是 Java 6。)

0 投票
1 回答
871 浏览

java - 从 Java Web 服务隐藏身份验证详细信息的外观

我正在构建一个使用服务 API 的 UI 客户端,该服务 API 在幕后使用 Web 服务。其中一项 API 服务如下所示:

loggedInUser 是代表调用该方法的用户。AuthenticationFault 是一个检查异常。大约有 20 个这样的服务接口。我想做的是实现一个隐藏loggedInUser参数和AuthenticationFault异常的外观。外观实现将使用当前登录客户端的用户调用这些方法。

我也想对其他检查的异常进行一些清理。如您所见,当客户端尝试检索页面 -1 时会引发 InvalidIndexFault 异常,但这是程序员错误,我不想将其作为已检查异常。

目前我所做的总是为我不喜欢的异常重新抛出一个 RuntimeException,但如果我后来改变主意,那么以后需要做很多工作来改变它。这也感觉像是代码重复。其他程序员刚刚吞下了异常并将它们记录下来,这太可怕了。大多数情况下,如果出现异常,我想将其冒泡到显示错误的 ui 中的错误处理程序。

我想到了一些解决方案:

  1. Java 动态代理
  2. 代码生成

我还没来得及尝试这些解决方案,我想我不妨先在这里问一下。你建议我如何实施这个?环境是 Java 6,构建工具是 Maven 3,如果有帮助的话。

PS。如果您回答这个问题,请多说“选择 2” :) 欢迎任何提示和其他实施细节。

澄清一下,检索当前登录的用户不是问题,因此您不必帮助我。我目前将其隐藏在接口后面并使用 IoC 将其注入。在幕后它使用 ThreadLocals

0 投票
3 回答
290 浏览

design-patterns - Facade Pattern 中的 Facade 调用次数

我们正在“讨论”应该在外观层中放置什么以及外观层应该对底层进行多少次调用。

在我们的项目中,我们有一个协调对服务和数据库的调用的编排层。我们还有一个包含业务规则和计算的业务层。

我们的外观层具有安全检查、日志记录和错误处理功能。

现在的问题是:外观是否应该对编排层只有一次调用,或者是否可以多次调用。如果只是一次调用,则应将这些层合并为单个层。

这些是用 C# 编写的 WCF 服务。

0 投票
2 回答
1160 浏览

javascript - JavaScript 中的 Modules + Fascade + Mediator 组合

我已经阅读了一篇关于http://addyosmani.com/largescalejavascript/的精彩文章

本文解释了如何为 JavaScript 应用程序组合模块、外观和中介。

我可以编写文章解释的代码,但我不明白为什么我需要使用外观来访问中介。

我想我可以直接从我的模块访问调解器。

请给我提意见..

PS:这是一个有效的问题吗?

0 投票
1 回答
1158 浏览

implementation - 外观设计模式 - 实现

我指的是 Eric Gamma 所著的 Elements of Reusable Object Oriented Software 关于设计模式的书。然而,我理解了外观模式的概念,但仍然无法理解书中给出的实现点,因为我对实现部分特别是有点差。

以下是书中提到的2点:

  1. 减少客户端子系统耦合:通过使 Facade 类成为抽象类。

  2. 公共与私有子系统类。

有人可以用一些例子或我的代码来解释我吗:

带有抽象类的代码:

0 投票
3 回答
242 浏览

facade - 门面图案,可以吗?

我有两台服务器,我将从一个客户端连接到它们。对于每台服务器,我将执行一个 ftp “put”和一个“rm”。

我应该建立一个门面,并有一个这样的界面:

而且,立面应该处理所有连接的建立和断开连接吗?如果是这样,它应该使用工厂这样做吗?