将 DAO 注入构造函数是否被认为是不好的做法?如果是这样,为什么?

2023-12-24

我有一个(DAL)数据访问层(但这个问题也与 DAO 相关),它与 android 中的静态 Web 服务进行通信(除了我不想包含大量静态库之外,它的相关性较小)交互并不那么复杂)。

我有一个对象,它包装一个列表,该列表由来自该数据访问层的信息填充,当用户向下扫描并到达该列表的底部时,该对象从 DAL 检索另一组信息。

我希望此列表包装对象的调用类只需调用列表包装对象,而不是 DAL(或 DAO)。然后,我可以构造一个 DAL 并将其传递给这些列表包装对象的构造函数,然后调用类可以继续调用此列表包装对象,并且该对象可以处理新信息的检索。

那么,这听起来像是不好的做法还是只是一个非常糟糕的解释?

在域对象的构造函数中注入 DAL 和 DAO 是一个坏主意吗?


答案取决于您是否对“贫血领域模型”以及面向对象与函数式编程的混合有强烈的感觉。

一个问题是您将以这种方式创建循环依赖关系:模型和持久性包必须相互了解。如果您使用更实用的样式,并且不提供对模型对象的 DAO 引用,那么它就是一种单向关系。

我不太喜欢你的设计。我担心它太耦合了。我不介意混合功能性风格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 DAO 注入构造函数是否被认为是不好的做法?如果是这样,为什么? 的相关文章

  • Android NDK 支持区域设置吗?

    我真正想做的就是使用格式化日期strftime x 以正确的顺序 在大多数平台上调用setlocale 足够 在 Android 上 我不断收到 美国日期 那么 Android 不支持语言环境吗 No setlocale and strft
  • Sun 在 EDT 之外做 GUI 工作的演示?

    我正在看SplashDemo java http download oracle com javase tutorial uiswing examples misc SplashDemoProject src misc SplashDemo
  • Android:canvas.drawBitmap() 方法无法正常工作

    我已经发布了两个与此相关的问题 请参考此自定义饼图 1 https stackoverflow com questions 28343600 customize pie chart in quarter shape at the botto
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 带有 backstack Resume 的嵌套片段

    在我的应用程序中有几个fragments in an activity我正在维护一个backStack对于这些fragment 一切都很好 但其中有一个嵌套的片段 当我把它放入backStack然后再次按后退按钮恢复 该片段看起来与先前的内
  • 如何在 ant 中为 junit 测试设置 file.encoding?

    我还没有完全完成file encoding 和 ant https stackoverflow com questions 1339352 how do i set dfile encoding within ants build xml
  • 提高 PostgreSQL 1 亿数据左连接查询性能

    我在用Postgresql 9 2 version Windows 7 64 bit RAM 6GB 这是一个Java企业项目 我必须在我的页面中显示订单相关信息 有三个表通过左连接连接在一起 Tables TV HD 389772 行 T
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • 为什么\0在java中不同系统中打印不同的输出

    下面的代码在不同的系统中打印不同的输出 String s hello vsrd replace 0 System out println s 当我在我的系统中尝试时 Linux Ubuntu Netbeans 7 1 它打印 When I
  • 部署 .war 时出现 Glassfish 服务器错误:部署期间发生错误:准备应用程序时出现异常:资源无效

    我正在使用以下内容 NetBeans IDE 7 3 内部版本 201306052037 爪哇 1 7 0 17 Java HotSpot TM 64 位服务器虚拟机 23 7 b01 NetBeans 集成 GlassFish Serve
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • 如何在android中安装和使用couch db

    我应该如何在 android 中安装和使用 couch Db 我的意思是本地沙发数据库 我可以在平板电脑和模拟器中使用它 为此我必须遵循哪些步骤 我目前正在开发一个使用它的项目 有两种选择 1 couchbase android 是的 co
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似
  • Java RMI - 客户端超时

    我正在使用 Java RMI 构建分布式系统 它必须支持服务器丢失 如果我的客户端使用 RMI 连接到服务器 如果该服务器出现故障 例如电缆问题 我的客户端应该会收到异常 以便它可以连接到其他服务器 但是当服务器出现故障时 我的客户端什么也
  • 抛出 Java 异常时是否会生成堆栈跟踪?

    这是假设我们不调用 printstacktrace 方法 只是抛出和捕获 我们正在考虑这样做是为了解决一些性能瓶颈 不 堆栈跟踪是在构造异常对象时生成的 而不是在抛出异常对象时生成的 Throwable 构造函数调用 fillInStack
  • Java 11 - 将 Spring @PostConstruct 替换为 afterPropertiesSet 或使用 initMethod

    我正在使用 spring 应用程序 有时会使用 PostConstruct用于代码和测试中的设置 看来注释将被排除在外Java 11 https www baeldung com spring postconstruct predestro
  • 由 Servlet 容器提供服务的 WebSocket

    上周我研究了 WebSockets 并对如何使用 Java Servlet API 实现服务器端进行了一些思考 我没有花费太多时间 但在使用 Tomcat 进行一些测试时遇到了以下问题 如果不修补容器或至少对 HttpServletResp

随机推荐

  • 如何广播 DataFrame?

    我使用的是spark sql 2 4 1版本 创建一个广播变量 如下所示 Broadcast
  • Bean初始化时如何调用数据源?

    我有一个托管 bean 它从数据库表中获取设置和值的列表 import java io Serializable import javax enterprise context SessionScoped or import javax f
  • jQuery UI 风格的文本输入框

    jQuery UI 使按钮看起来很漂亮 button button 是否有等效的文本输入框 没有什么可以阻止你做 input button 我喜欢这个 input text input password button css font in
  • 使用 Spring 的 form 标签动态绑定列表

    我有一个命令对象FaxForm它包含一个列表FaxStatusa 内的物体faxStatusList财产 public class FaxForm private List
  • 通过 Javascript 在 Excel 中打开 HTML 页面

    我们有以 HTML 格式生成的报告 用户经常在 Excel 中打开这些报告 我们通过使用内容类型来提供足够简单的服务 然而 我们最近遇到了一个麻烦的弹出窗口 其中一些报告使用大量 JavaScript 来进行动态分组 排序 并且用户希望将报
  • 在 Angular 中从服务器下载文本/csv 内容作为文件

    我正在尝试流式传输csv来自 Node js 服务器的文件 服务器部分非常简单 server get orders function req res res setHeader content type text csv res setHe
  • 我可以使用 JQuery 获取突出显示的文本吗? [复制]

    这个问题在这里已经有答案了 我在任何地方都找不到任何东西 是否有 JQuery 解决方案来检索突出显示的文本 我需要检查突出显示的文本是否有跨度 获取这些跨度的样式属性 并据此操作它们 我可以使用正则表达式或任何显然的东西来完成该部分 但首
  • mongoDB 更新与 arrayFilters 不起作用

    我在 mongo 中有以下文档结构 简化 id 5e30208675b5400cb0894c52 locations name Pleasure Gardens id 618 areas name Koi Pond area id 159
  • 如何在 C# 中防止/取消组合框的值更改?

    我在表单顶部有一个组合框 可将可编辑数据加载到下面的字段中 如果用户进行了更改但未保存 并尝试从组合框中选择不同的选项 我想警告他们并给他们一个取消或保存的机会 我需要一个带有可取消事件参数的 BeforeValueChange 事件 关于
  • 在 Python 中创建流类

    我有一个类需要一个包含 XML 文件的流 我不一定需要文件流 我可能想使用其他源 如数据库 套接字等 我需要从什么类继承IO模块 http docs python org library io html为了从其他来源提供流接口 安德烈给出的
  • 如何拍摄黑白视频

    我是 iPhone 应用程序开发新手 我开发了一款 iPhone 应用程序 在此应用程序中 我想开发使用 iPhone 相机录制黑白视频 请帮助我如何开发这个 然后还给出一些示例代码网址 提前致谢 您想要使用 kCVPixelFormatT
  • Python 分组依据

    假设我有一组数据对 其中index 0是值并且index 1是类型 input 11013331 KAT 9085267 NOT 5238761 ETH 5349618 ETH 11788544 NOT 962142 ETH 7795297
  • 如何在 Node.js 中检索客户端和服务器 IP 地址和端口号

    我尝试进行大量搜索以找到一种方法来了解客户端和服务器的 IP 地址和端口号 到目前为止我发现 客户端IP 可以知道req ip 客户端端口 我搜索了很多 但找不到任何方法来找到这个客户端临时端口 检查完后req and res对象 我发现有
  • 使用 joda 时间的两个日期之间的秒数差异?

    假设有两个日期 A 开始时间 和 B 结束时间 A 和 B 可以是同一天甚至不同天的时间 我的任务是在几秒钟内显示差异 我正在使用的日期格式是 Date Format yyyy MM dd T HH mm ss SSSZ 例如 start
  • 找不到System.Xaml?

    我有一个 VS2010 项目需要引用 System Xaml 我转到 添加引用 搜索 NET 引用 但它不在那里 我也仔细检查了 GAC 但没有这样的运气 我就是想不通为什么它不在机器上 该计算机安装了 NET 3 5 SP1 和 NET
  • UILabel 的字体在视图重新出现之前不会调整

    使用故事板 我创建了一个带有带有标签的单元格的表格视图 我希望能够轻松地将相同的字体分配给应用程序中的所有标签 因此我在辅助文件 smallFont mediumFont 和 largeFont 中创建了一些字体tableView tabl
  • 访问 ASP.NET 中没有值的查询字符串参数

    我正在尝试设置一个具有两种行为的页面 我通过 URL 将它们分开 一种行为通过 some controller some action 另一个是通过 some controller some action customize 不过 当我访问
  • 将派生类转换为基类

    我正在尝试刷新我的记忆 但无法通过 Google 找到答案 public class BaseClass public virtual void DoSomething Trace Write base class public class
  • Docker:连接期间出错

    每当我尝试使用 RSelenium 包时 我都会收到上述错误 shell docker run d p 4445 4444 selenium standalone chrome docker error during connect Pos
  • 将 DAO 注入构造函数是否被认为是不好的做法?如果是这样,为什么?

    我有一个 DAL 数据访问层 但这个问题也与 DAO 相关 它与 android 中的静态 Web 服务进行通信 除了我不想包含大量静态库之外 它的相关性较小 交互并不那么复杂 我有一个对象 它包装一个列表 该列表由来自该数据访问层的信息填