我正在为一个项目进行代码审查.您可以在以下方案中看到它的架构:

此时DTO - 简单的POJO和域 - 包含Hibernate anotations.据我所知,使用DTO的一个好处是,您可以将所有域字段设置为公共字段,并使用getter和setter删除所有存根代码.这是正确的方法吗?
您如何看待从DTO中删除getter和setter?也许有一些专业人士在Groovy中实现DTO?
怎么想的呢?
我正在开发一个项目,其中一个联合开发人员(和以前的开发人员)使用Singleton/Facade几乎每个页面的内部都有很多方法调用,但实际上并没有维护数据.
例如:
public class FooFacade
{
private static FooFacade m_facade = null;
private static DataAccessManager m_dataAccessMgr = null;
public StringBuilder Status {get; set; }
private FooFacade()
{
this.Status = new StringBuilder();
}
public static FooFacade getInstance()
{
if (m_facade == null)
{
m_dataAccessMgr = DataAccessManager.getInstance();
m_facade = new FooFacade();
}
return m_facade;
}
public void clearStatus()
{
this.Status.Remove(0, Status.Length);
}
public void Method1(string value1, int value2)
{
// DO SOMETHING
}
public List<string> Method2(string value1, int value2)
{
// DO …Run Code Online (Sandbox Code Playgroud) 几年前,我被告知要在单独的.cs文件中实现业务逻辑代码,尽管这些文件包含了相同的分部类.所以可以从业务层调用一个方法,如下所示:
using(FooPartialDisposableClass partialClassInstance = new FooPartialDisposableClass ())
partialClassInstance.BusinessMethod();
Run Code Online (Sandbox Code Playgroud)
好.所以现在,我正在做同样的事情,这次我正在使用Facade模式.这个解决方案似乎是一种更好的方法,即使你必须编写更多的代码并且它的可维护性更低.
那么,我的问题是......按照部分类方法是否正确?
PS:我还想到了接口和依赖注入,以便将这一层与将要使用这些业务逻辑方法的层分离,但是考虑到这里的工作方式,这是一个禁忌:S
我需要创建一个采用TreeSet或HashSet的Facade.它的构造函数必须如下所示:
CollectionFacadeSet(java.util.Collection<java.lang.String> collection)
Run Code Online (Sandbox Code Playgroud)
我导入java集合并使用此行:
Collections <String> collection = new Collections<>();
Run Code Online (Sandbox Code Playgroud)
但是,java不接受它,我收到一个错误:
- 类型集合不是通用的; 它不能用参数参数化
- 类型集合不是通用的; 它不能用参数<>进行参数化
任何解决方案
谢谢!
我的问题很简单.今天,前端和后端都有很多框架,它们实现了MVC(模型 - 视图 - 控制)架构.
"MVC中的控制器"是Facade Design Pattern的一个例子吗?
model-view-controller design-patterns controller facade object-oriented-analysis
"Facade设计模式"和Java界面在概念上是一样的吗?因为两者都通过提供表达复杂功能的简单方式来实现抽象.我们可以通过创建界面来说我们遵循Facade模式吗?
使用data_get()辅助函数,我们可以使用点.表示法获取嵌套数组的值,如下所示:
$my_arr = [
'a' => ['lower' => 'aa', 'upper' => 'AAA',],
'b' => ['lower' => 'bbb', 'upper' => 'BBBBB',],
];
Run Code Online (Sandbox Code Playgroud)
因此,我可以a通过这样做来降低。
data_get($my_arr, 'a.lower');
Run Code Online (Sandbox Code Playgroud)
您还可以执行以下操作。
Arr::get('a.lower');
Run Code Online (Sandbox Code Playgroud)
如果我只想获得数组的第一级。我只能两者兼得:
data_get($my_arr, 'a');
Run Code Online (Sandbox Code Playgroud)
或者
Arr::get($my_arr, 'a');
Run Code Online (Sandbox Code Playgroud)
你推荐我哪一个,为什么?我只是想不断改进我的 Laravel 体验,并从高级开发人员那里获得好的建议,以选择目前最好的选项。
我最近看到一个带有Facade模式的 EJB 代码,它提供了一些在表示层 (JSF) 中使用的方法。但在业务逻辑的某些部分,会调用并使用Facade的方法。
这对我来说有点奇怪,因为我认为外观应该服务于外部世界而不是内部功能。我是对的还是我偏执了?
这是一个粗略(愚蠢)的图表来说明这种情况:

我是laravel的新手,我在集体Laravel的安装方面遇到了一些问题,尽管我对照集体拉拉维尔的安装指南进行了更正.
FatalErrorException in Facade.php line 217:
Call to undefined method Collective\Html\FormFacade::open()
Run Code Online (Sandbox Code Playgroud)
在我安装的所有版本(5.1,5.2,5.3)中,在源代码中调用表单类时,我有相同的错误:
{!! Form::open(['url' => 'foo/bar']) !!}
some code
{!! Form::close() !!}
Run Code Online (Sandbox Code Playgroud)
Tks帮助我.