问题标签 [layered]

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 投票
7 回答
2674 浏览

c# - 我应该在哪里处理 BLL、DAL 或 PL 中的异常?

哪个是处理异常的最佳位置?BLL、DAL 还是 PL?

我是否应该允许 DAL 和 BLL 中的方法将异常抛出链上并让 PL 处理它们?还是我应该在 BLL 处理它们?

例如

如果我的 DAL 中有一个方法发出“ExecuteNonQuery”并更新一些记录,并且由于一个或多个原因,0 行受到影响。现在,我应该如何让我的 PL 知道是否发生了异常或确实没有与条件匹配的行。我应该在我的 PL 代码中使用“try catch”并通过异常让它知道,还是应该在 DAL 处处理异常并返回一些特殊代码,如 (-1) 以让 PL 区分(异常)和(否行匹配条件,即零行受影响)?

0 投票
2 回答
6438 浏览

magento - Magento 分层导航类别

当用户单击分层导航中的类别时,我希望将用户发送到类别登录页面。

因此,当用户单击 RedWidget 类别时/category.html?cat=11,他们不会得到 ,而是得到。/category/RedWidget.html?cat=11

我找到了这个链接,但他的代码不起作用。

提前谢谢!

0 投票
3 回答
398 浏览

design-patterns - 具有粒度方法和属性访问的编程语言

想象这样的事情:

“支持”的想法是次要的但相关的,因为在这种情况下测试适用于接口(因此语言将区分所有实现必须通过的接口测试和特定于实现私有的实现测试

但我想在这里传达的重要思想是访问控制语义;请注意,带有“access from”关键字的 A.sum 只能从方法 B.calculator 中调用。其他任何东西都被检测为编译时错误。这里的想法是以更细化的方式实施架构约束。如果您没有添加“访问自”或仅添加“访问自 *”,则意味着允许从任何地方调用该方法的默认行为。什么样的架构约束?好吧,在进行分层设计时手动执行的那种:A层(最低层)从B层(中间层)使用,而B层又从C层(高层)使用。但是 A 层无法访问 B 层,A 或 B 都无法访问 C 层,

问题:你知道支持上述语义的任何语言(包括源到源中间语言)吗?讨论这种语义是否会适得其反、危险或只是鼓励不良设计的额外要点

更新:这种限制还有另一个非常重要的用例:

事件驱动编程:通常事件的问题是事件往往做的太多,理解事件的依赖链可能会变得很棘手

因此,例如,可以定义事件处理程序只有一组可以交互的可见类(或者相反,它不能接触的一组对象)

0 投票
1 回答
531 浏览

entity-framework - 创建数据访问组件和业务组件是双重工作吗?

我正在设计我的第一个分层应用程序,它由数据、业务和表示层组成。

我的业务组件(例如,Business.Components.UserComponent)目前有以下方法:

我喜欢这个设计。但是,我在网上遇到了一些建议以下实现的示例:

这将导致为所有实体创建一个数据访问组件,每个实体都包含基本方法(创建、编辑、删除...等)。

这似乎是双重工作,因为我必须创建具有基本方法的数据访问组件以及仅调用数据访问组件中的方法的业务组件。

在分层应用程序中正确实现基本 CRUD 功能的最佳实践是什么?它们应该在业务组件或数据访问组件中“编码”吗?

0 投票
7 回答
909 浏览

c# - 三层架构模式

是否可以通过这种方式使用部分类来实现 BLL 和 DAL:

或任何其他建议?提前致谢。

0 投票
2 回答
148 浏览

c# - C# EF4 和分层设计的装配参考错误

我终于开始检查最新的 EF 版本,但我的测试遇到了一些麻烦。

因此,我的 DAL 层包含我的 .EDMX 文件,并且我正在使用 MS POCO 模板,因此我也有生成的 .TT 文件和类。

我在我创建的 TestProject.DAL 中有一个通用基类,这些类派生自这些类。IE

然后在我的 TestProject.BLL 层我有一些派生类即

然后,在我的 UI 层中,我调用了我的 BLL.Customer 对象。我收到一条错误消息,指出未添加对 DAL.Customer 对象的引用等。

我从我的 UI 项目中引用了 BLL 项目,从我的 BLL 项目中引用了 DAL。

为什么 UI 层在该项目中未引用 DAL 层时抱怨它知道 DAL 层?

另外,作为一个附带问题,这看起来像一个“好”的设计吗?

谢谢大家!鹅

0 投票
2 回答
5284 浏览

magento - 在 Magento 分层导航中,如何获取活动过滤器的所有项目?

一旦过滤器变为活动状态,它会返回 0 个项目,因此它不会再显示在“购物选项”中。对于我的自定义分层导航,我需要获取并显示这些项目。我知道一些扩展已经在这样做(并在项目旁边提供复选框),但我想知道如何自己做。

0 投票
1 回答
10746 浏览

c++ - C++ GDI+ 在透明分层窗口上绘制文本

(非托管 C++)我已经成功地将 PNG 文件绘制到可以在桌面上拖动的透明分层窗口,但现在我的问题是在透明分层窗口上绘制文本

这是我的代码和我在中间绘制文本的尝试,重要的是要注意我使用的是 screenDC 而不是使用 WM_PAINT 消息中的那个

[编辑] 评论后更新代码,现在我只是想在获得 HBITMAP 版本之前在位图上写文本,这次我使用的是 DrawString,因为 textout() 不是 GDI+,我希望 DrawString真的是GDI +大声笑仍然无法正常工作,想知道我做错了什么

我已经尝试在我的分层窗口上写文本两天了,但从这些尝试中我知道有几种方法可以做到这一点(不幸的是,我不知道具体如何)

我看到的通常选项是在位图上绘制文本,然后渲染位图本身

  1. 使用 Gdi+ 加载位图
  2. 从位图创建一个 Graphics 对象
  3. 使用 DrawString 将文本写入位图
  4. 处理 Graphics 对象
  5. 使用位图保存方法将结果保存到文件

显然,也可以从 DC 制作图形对象,然后在 DC 上绘制文本,但我再次不知道如何做到这一点

0 投票
0 回答
268 浏览

c# - 需要帮助刮分层窗口

我正在尝试抓取(截屏)分层窗口,但它似乎无法正常工作。一些分层窗口工作正常,有些则不然。以下是我的做法:

问题是,当通过 UpdateLayeredWindow 更新分层窗口时,我得到了通过 SetLayeredWindowAttributes 创建的窗口的正确图像和黑色位图。有人可以告诉我,我们是否有办法通过 UpdateLayeredWindow win api 调用来抓取更新的分层窗口?

到目前为止,我的解决方法是截取整个屏幕的屏幕截图,然后从中复制窗口位图,问题是窗口应该始终位于顶部才能正常工作。

TIA

0 投票
1 回答
13975 浏览

collections - 自定义产品集合上的 Magento 分层导航

我一直在为 Magento(版本 1.8.0.0)开发一个自定义模块,该模块显示某个产品的相关产品列表。

为了实现这一点,我通过覆盖Mage_Catalog_Block_Product_List类创建了自己的模块。

基本上这是它的工作原理:

从控制器中,我捕获产品entity_id并将产品存储在注册表中,以便我可以在名为 list.php 的自定义编写块中使用它

这是填充产品集合的方法:

我还在自定义模块的布局 .xml 中添加了以下内容,以确保显示分层导航:

分层导航显示,但似乎将所有产品作为集合而不是我在上面添加的方法中使用的自定义集合。

我也知道我可以使用它来获取目录/图层$layer = Mage::getSingleton('catalog/layer');

图层类还有一个名为 prepareProductCollection 和 setCollection 的方法,但由于某种原因,我无法让它工作。

对此有什么帮助吗?

基本上,我希望为自定义集合中的产品提供分层导航。

谢谢,