问题标签 [domain-model]

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 回答
118 浏览

zend-framework - Zend_Paginator 和设计问题,领域模型

我正在尝试使用Matthew Weier O'Phinney在 zend 快速入门指南中描述的胖模型瘦控制器方法设计我的应用程序,或者Bill Karwin's blog note但目前我正在尝试使用实现分页Zend_Paginator,但我遇到了麻烦,因为我发现的每个示例都是基于简单扩展的模型Zend_Db_Table

目前我正在使用Zend_Paginator_Adapter_Array其中包含模型数组(范围,不是数据库中的所有记录),唯一的问题是我无法设置整体项目数。

有人可以给我建议什么方法是正确的吗?我应该编写自定义分页适配器还是更改实际设计并使用基于 zend_db_table 的模型?

问候

0 投票
1 回答
830 浏览

web-services - CXF WebService 客户端生成:使用现有的域模型类

我有一个 Web 应用程序,它在 GUI(JSF 2.0、Orchestra、Spring)和服务(Spring、JPA、Hibernate,...)项目中分开。由于Web服务器和数据库服务器之间的网络问题,我需要将应用程序完全拆分,在层之间并将它们部署在两个不同的tomcat上,用于靠近数据库服务器的服务部分。我已经使用 Eclipse WTP CXF 插件生成了一个 web 服务和一个 web 服务客户端。

我的问题是:对于客户端它会生成域模型类的副本,所以我不能直接在我的 gui 项目中使用它们,并且需要在 web 服务客户端和 gui 层之间引入一个转换层。Wich 很麻烦且容易出错。

是否有可能使用共享域模型(模型类在一个单独的项目中,服务和 gui 项目都依赖)生成 Web 服务客户端(在现有的 Web 服务模块和 wsdl 之外)?

迫不及待地寻找解决方案,因为部署截止日期即将到来......

0 投票
2 回答
866 浏览

php - 域模型或域对象?- 定义

如果我错了,请纠正我。

我们可以说领域模型来表示:

a) MVC 结构的 M 部分,在 M 部分上应用了领域驱动设计模式。

b)以某种方式的实体、它们的属性和关系的方案。也可以表示 MVC 上的 M 部分,但在这种情况下,无论使用何种模式。

c)领域模型设计模式,其中“领域模型创建互连对象的网络”;

d)作为域对象(例如,可以是我们的 MVC 模型上的一个对象,涉及某个域);

我们可以说d)与b)相同吗?

非常感谢。

0 投票
3 回答
132 浏览

php - 如何在模型结构上表示必填业务字段?

如果我们使用类型提示,我们可以强制放置一个对象:

如果我们想放置的不是所有对象,而是其中的一些属性,是强制性的,该怎么办?让我们假设我们的领域模型会更好,如果它更好地代表某个领域。如果这对我们的业务模型(在我们的领域)更有意义?我们应该怎么做?

无论如何,我们应该始终放置ALL 对象吗?


澄清示例建议:

让我们想象一下,为了列出某个作者的书,我们有这个方法:

现在,让我们假设作者对象有 200 个左右的属性,但是,为了处理书籍列表,我们只需要他们的名字姓氏

我们是否应该收到 ALL $author 对象?

0 投票
3 回答
5336 浏览

orm - 工作单元和存储库模式的实际使用

我正在构建一个 ORM,并尝试找出每种模式的确切职责。假设我想在两个帐户之间转移资金,使用工作单元来管理单个数据库事务中的更新。以下方法是否正确?

  1. 从存储库中获取它们
  2. 将它们附加到我的工作单元
  3. 进行业务交易并提交?

例子:

应该像本例一样,独立使用工作单元和存储库,或者:

  • 工作单元是否应该在内部使用存储库并能够加载对象?
  • ...或者存储库应该在内部使用工作单元并自动附加任何加载的实体?

欢迎所有评论!

0 投票
1 回答
1692 浏览

nhibernate - 用于 Mono、MonoTouch 和 ASP.NET MVC 的 ORM

我正在计划一个应用程序,它将在 ASP.NET MVC Web 应用程序、WinForms 应用程序和 MonoTouch iPad 应用程序之间重用实体。

我考虑过使用(流利的)NHibernate 作为 ORM,但我担心如果我设计我的实体以在 WinForms 上使用,当我创建 iPad 应用程序时,我将不得不复制实体,并将它们重新映射到 iPad 上的 SQLLite (MonoTouch 上没有 NHibernate)。

有没有我可以逃脱的ORM:

  1. 使用相同的实体(如果实体是根据 Fluent NHibernate 从映射中抽象出来的,这应该是可能的)
  2. 使用相同的映射(这可能更难实现并且不那么重要

提前致谢。

0 投票
4 回答
2873 浏览

c# - 使用访问者模式从平面 DTO 构造对象图

我给自己写了一个简单的小领域模型,对象图如下所示:

这种结构与我必须使用的遗留数据库完全不一致,因此我定义了一个平面 DTO,其中包含客户图中每个元素的数据 - 我在数据库中有视图和存储过程,这允许我使用这种平面结构在两个方向上与数据交互,这一切都很好&花花公子:)

将域模型展平为 DTO 以进行插入/更新是直截了当的,但我遇到的问题是采用 DTO 并从中创建域模型......我的第一个想法是实现一个访问者,它将访问每个元素客户图,并根据需要从 DTO 注入值,有点像这样:

这就是理论,当它像这样简单地布置时,它似乎是一个合理的想法:)

但是为了使这个工作,整个对象图需要在访问者之前构建,访问,否则我会得到 NRE 的左右和中心。

我想要做的是让访问者在访问每个元素时对象分配给图形,目标是对 DTO 中缺少数据的对象使用特殊情况模式,例如。

老实说,我认为这会起作用,但是 C# 给我一个错误:

由于您不能以这种方式传递 ref/out 参数:(

所以我只剩下访问独立元素并在完成后重建图形:

在这一点上,我意识到我离访问者模式很远,离工厂更近了,我开始怀疑我是否从一开始就错误地处理了这个问题。

有没有其他人遇到过这样的问题?你是怎么克服的?是否有任何设计模式非常适合这种情况?

很抱歉发布了这样一个冗长的问题,并且读到这里做得很好:)

编辑为了回应 Florian Greinacher 和 gjvdkamp 的有用答案,我选择了一个相对简单的工厂实现,如下所示:

然后我写了一个 ModelMediator 类来处理数据层和域模型之间的交互......

0 投票
1 回答
4153 浏览

oop - 域模型和 OO 域模型有什么区别?

据说域模型用于捕获应用程序的问题域。这就是所需的要求,等等。但通常,这些模型几乎非常接近在实施阶段可能变成类的模型。

但是还有一种叫做面向对象的领域模型,据说它可以捕获“问题域的数据抽象”。通过短语“问题域的数据抽象”,我将其理解为“可以分离的问题域的层”。

在这种情况下,域模型和 OO 域模型有什么区别?他们都捕捉到几乎相同的东西,不是吗?

0 投票
1 回答
897 浏览

json - Java EE - 在将域模型对象传递给视图之前格式化域模型对象的正确层是什么?

我正在开发一个具有典型分层架构的 Web 应用程序:

从数据库中检索域模型对象的 DAO 层;

该层与使用这些对象进行一些业务操作的服务层通信;

Web 层(Spring 控制器)使用服务层来检索域模型对象(或它们的集合)并将它们传递给视图层;

视图层要么是使用 JSTL 显示数据的简单 JSP,要么是通过 AJAX 以 JSON 对象(通过 Jackson 库转换为 JSON 的域对象)形式检索一些数据的 JSP。

我一直在研究以下内容:

很多时候,我需要将 db 字段转换为不同的格式以显示给用户。例如,日期可能存储为时间戳,我希望它显示为格式化日期(例如 dd/mm/yyyy)。

另外,我需要做相反的事情,将一些值(通常是用户输入)转换为域模型对象属性的格式。

我的问题是,我应该在哪里进行这种转换?特别是对于 JSON 数据,它们应该已经在 AJAX 响应中格式化,我认为我不应该用 Javascript 格式化它,对吗?

先感谢您。

0 投票
2 回答
260 浏览

c# - 基于公司而非用户的复杂领域模型

我有几种不同类型的公司可以访问我的 Web 应用程序,例如

不同类型的公司:

客户供应商代理

每个人在数据库中都有自己的表,链接到主表 Company,该表存储所有常见数据,例如 Address、Tel、Email、TypeOfCompany,并带有 FK 到相关表(Client 等)...

在整个应用程序中处理此 OO 的最佳方法是什么?

我目前正在做类似的事情:

然后从该类继承并添加其他属性,例如

但是,例如,我有时会发现它有问题

  1. 供应商用户想要访问:AllCompanies,- 显示所有公司的列表
  2. 然后供应商公司的用户想要查看特定公司的详细信息,现在如果是客户,我需要显示 ClientDTO 还是 SupplierDTO?在这种情况下,我想向特定公司展示完整的详细信息

处理这个问题的最佳方法是什么?

例如GetCompanyByID(int companyid);,或者GetClientByID(int clientid);我应该在两个实例中返回什么类型的对象,假设我想要两个实例中的客户详细信息......