标签: facade

隐藏jar文件中的类

是否真的不可能在jar文件中隐藏某些类?

我希望不允许直接实例化类以使其更灵活.这个罐子里只能看到工厂(或立面).

除了创建两个项目之外,还有其他办法解决这个问题吗?(两个项目:第一个包含类(实现),另一个引用第一个并包含工厂;后面只引用第二个)

java information-hiding jar facade factory-pattern

10
推荐指数
2
解决办法
1万
查看次数

Laravel的Facade是否实现了Facade或Proxy Pattern?

据我所知,Facade Pattern的意图是

提供一个统一的接口组接口在一个子系统.Facade定义了一个更高级别的接口,使子系统更易于使用.这可以用于将许多复杂的对象交互简化为单个界面.

在此输入图像描述

根据我的理解,模式的目标是隐藏子系统中的复杂性(例如,您的外观类调用子系统中的许多对象).

但是在Laravel的Facade中,它只有一个类调用另一个(不是子系统).对我来说,它看起来更像是一个Proxy超过Facade.有人可以帮我澄清这一点.

facade laravel

10
推荐指数
1
解决办法
572
查看次数

Facade Pattern和其他模式之间的差异

我对模式有疑问.我的设计模式确实存在问题.你能告诉我Facade Pattern和Builder,Factory和Abstract Factory模式之间的区别吗?

design-patterns facade

9
推荐指数
2
解决办法
7704
查看次数

在C++中将临时值作为非const引用传递

我有下面这段代码,作为一个例子,dec_proxy尝试将增量运算符的效果反转到在复杂函数调用foo中执行的类型 - 顺便说一下我无法更改接口.

#include <iostream>

template<typename T>
class dec_proxy
{
public:
   dec_proxy(T& t)
   :t_(t)
   {}

   dec_proxy<T>& operator++()
   {
      --t_;
      return *this;
   }

private:
   T& t_;
};

template<typename T, typename S, typename R>
void foo(T& t, S& s, R& r)
{
  ++t;
  ++s;
  ++r;
}

int main()
{
   int i = 0;
   double j = 0;
   short  k = 0;

   dec_proxy<int> dp1(i);
   dec_proxy<double> dp2(j);
   dec_proxy<short> dp3(k);

   foo(dp1,dp2,dp3);

   //foo(dec_proxy<int>(i),     <---- Gives an error
   //   dec_proxy<double>(j),     <---- Gives an error
   //   dec_proxy<short>(k));      <---- …
Run Code Online (Sandbox Code Playgroud)

c++ proxy-classes facade pass-by-reference

9
推荐指数
2
解决办法
1575
查看次数

SessionFaçade核心J2EE模式的优点和缺点是什么?

SessionFaçade核心J2EE模式的优点和缺点是什么?

它背后的假设是什么?

这些假设在特定环境中是否有效?

session design-patterns facade java-ee

8
推荐指数
1
解决办法
2万
查看次数

架构两个独立数据库的最佳方法?

我在工作中遇到了以下问题,而且我没有经验或知识来回答它们,我希望你们中的一些人能够指出我正确的方向,任何答案将不胜感激!

脚本

我们有两个方面的业务使用单独的数据库,人力资源和业务领域(家庭护理).
人力资源部门跟踪公司的员工,轮班模式,缺勤,薪酬等.Homecare会跟踪客户信息,家访,访问日期以及负责提供访问的员工.

这两个系统是分开的,我们目前正在寻找集成它们的方法.

此外,我们正在研究如何将查看这两个数据库的代码组织成可重用,有组织的库.

我们有三个应用程序重用HumanResources.dll,负责与库中包含的EF 4对象上下文进行通信.对象上下文几乎是数据库的镜像.

问题


我们即将添加第四个将使用HR数据库中的数据的应用程序.

我们要不要:

创建一个新的EF数据模型,负责提供只有应用程序需要的信息,同时复制一些常见的实体,如Employee.

要么

将新实体/表添加到已经很大的模型中并接受它将变大.


从长远来看,我们需要将人力资源数据库中的班次模式信息加入第5个应用程序中的操作区域(家庭护理)数据库中的客户访问.

我们已经了解了我们能做些什么; 我们提出以下建议:

创建一个位于HumanResources对象上下文和Homecare对象上下文之间的层,负责将两组数据连接在一起.

还有其他方法可以使我们受益吗?

architecture integration database-design facade entity-framework-4

8
推荐指数
1
解决办法
721
查看次数

Facade 模式是否违反了 SOLID 原则?

我问自己,外观模式是否违反了 SOLID 原则,以及模式本身是否是反模式。

更新

我的意见:

  • 当您不只是直接调用方法,而是执行诸如事务、日志记录、错误处理(我见过很多次)之类的事情时,就违反了SRP。即使只是调用其他方法,我也有疑问。
  • 违反了OCP,因为你会在facade中添加更多的方法

  • LSP / ISP被违反,因为消费者/客户端有依赖,会有太多客户端不需要的方法。

  • DIP,在我看来,只要接口本身只公开抽象或 DTO,就不会被违反。

SOLID一般是我约的意见稳定,从而组合的接口。

一个门面往往是相反的不稳定

design-patterns facade solid-principles

8
推荐指数
1
解决办法
3362
查看次数

slf4j 是如何成为外观的?

我试图了解 slf4j 的细节。我仍然不清楚如何将 slf4j 视为 Logging 门面?

门面的目的通常是 -

为子系统中的一组接口提供统一的接口。Facade 定义了一个更高级别的接口,使子系统更易于使用。

在 slf4j 的情况下,它提供了一个通用Logger接口,但每个绑定项目(如log4j, logback等)都需要提供它们的具体实现。

所以我理解如何adapter pattern适应,但我仍然无法理解如何Facade Pattern使用。

logging facade slf4j

7
推荐指数
1
解决办法
671
查看次数

使用立面图案

我怎么知道在我的应用程序开发中需要一个外观模式?

如何在Facade Pattern和Template Pattern之间画线?

例如:在[this]文章中,我们看到,int placeOrder(int CustomerID, List<BasketItem> Products)算法中有许多预定义的步骤.那么作者为什么不在这里使用模板模式呢?

language-agnostic design-patterns facade

6
推荐指数
2
解决办法
3616
查看次数

如何在Laravel 4中创建自定义Facade

看了几个关于外墙和laravel 4的教程...尝试了一些......不喜欢他们工作的方式.

例如,他们并不都提供了一种定义外观文件和服务提供商存储位置的方法......我试图远离那个并让我的头撞到几个墙,直到我决定做这个线程.

所以:假设我有一个名为Laracms(laravel cms)的应用程序.

我想将我创建的所有内容 - 外墙,服务提供商等存储在名为laracms的app下的文件夹中.

所以我有/ app/laracms/facades,/ app/laracms/serviceproviders等等.我不想将外观与数据库模型混合在一起,我希望尽可能将内容保持分离.

在我的例子中,现在让我们看一下外观的设置名称(我希望实现一个设置类,用于视图和管理员来设置misc.的东西).

Settings :: get(),Settings :: set()作为方法.

任何人都可以解释如何正确设置外墙?我不知道我做错了什么,我需要一个新的开始.

谢谢,克里斯

寻找一步一步的简单解释如何以及为什么.

php database facade laravel laravel-4

6
推荐指数
1
解决办法
2093
查看次数