社区
研发管理
帖子详情
关于对象职责的疑问
smallfish2001
2004-09-14 11:11:11
有一组聚集,Order 和 OrderItem。当想要保存这组对象的时候,OrderItem的保存应该在Order中,但保存Order应该在自己本身类吗?还在应该有一个它的Manager类。
...全文
194
10
打赏
收藏
关于对象职责的疑问
有一组聚集,Order 和 OrderItem。当想要保存这组对象的时候,OrderItem的保存应该在Order中,但保存Order应该在自己本身类吗?还在应该有一个它的Manager类。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stonespace
2004-09-17
打赏
举报
回复
Manager类和DAO类的差别很小
jeffyan77
2004-09-17
打赏
举报
回复
设立Manager类不是好办法。
数据持久化可以在Order内部做,也可以使用一个OrderDAO类做。这就是DAO模式。
stonespace
2004-09-15
打赏
举报
回复
根据DIM和专家模式,应该让OrderItem来做,这样可以省去manager这个类。
smallfish2001
2004-09-14
打赏
举报
回复
但这是不是又不符合DIM原则了呢?
esmilepro
2004-09-14
打赏
举报
回复
从类的单一职责原则来看,我倾向于用manager.
smallfish2001
2004-09-14
打赏
举报
回复
我觉得是什么样的存储方式应该没有什么影响的,我可以做个接口来隔离啊!
esmilepro
2004-09-14
打赏
举报
回复
"Manager是控制类,如果要保存到数据库可以用Manager来做,如果保存到文件,让OrderItem做。"
---------------------------
为什么保存到文本要OrderItem来做?如果选择用manager的话,就一并在manager里实现存储到文本里的方法就行了?
stonespace
2004-09-14
打赏
举报
回复
Manager是控制类,如果要保存到数据库可以用Manager来做,如果保存到文件,让OrderItem做。
smallfish2001
2004-09-14
打赏
举报
回复
那为什么UPDATE要用实例方法啊
jlp2004
2004-09-14
打赏
举报
回复
我觉得他本身中比较好,关于管理的这些我觉得在本身中采用静态方法比较好解决这类问题,例如ADD,DELETE,而UPDATE就采用实例方法,不知说的对不对,请大家讨论
ObjectMapper方法区别[项目源码]
本文详细介绍了Jackson库中ObjectMapper类的两个核心方法writeValue()和writeValueAsString()的区别。writeValue()方法用于将Java
对象
序列化为JSON格式并直接写入指定的输出流或字符流中,适用于需要将JSON数据直接写入文件或网络流等场景。而writeValueAsString()方法则将Java
对象
序列化为JSON字符串并返回该字符串,适用于需要获取JSON字符串进行进一步处理的情况。文章通过具体的代码示例展示了两种方法的使用方式和输出结果,帮助开发者更好地理解两者的适用场景和差异。
Java内存模型详解[可运行源码]
本文详细介绍了Java内存模型(JMM)的概念、结构及其在多线程编程中的重要性。JMM旨在屏蔽不同硬件和操作系统间的差异,确保代码在不同平台下具有一致的访问结果。文章解释了JMM的核心特性,包括可见性、原子性和有序性,并描述了线程如何通过工作内存与主内存交互。此外,还探讨了synchronized和volatile关键字在保证线程安全方面的作用。JMM规定所有变量存储在主内存中,线程操作需通过工作内存进行,不同线程间的通信必须通过主内存完成。
Python 加密实战示例-「一次性密码本(OTP)(XOR)+ Blake2b 哈希 + 内存流式处理」
加密算法实现与性能优化实践 功能一览 对称加密:一次性密码本(OTP)XOR(256-bit 密钥) 哈希校验:Blake2b(256-bit)分段校验,篡改即报错 流式处理:64 KB 分块,不爆内存 零依赖:仅 Python ≥3.6 标准库(secrets, hashlib, os, struct) 运行演示 # 加密文件 python otp_blake2b_stream.py -e big.mkv big.mkv.enc mypassword # 解密文件 python otp_blake2b_stream.py -d big.mkv.enc big.mkv.dec mypassword [✓] 解密完成:big.mkv.enc -> big.mkv.dec [✓] Blake2b:d3adbeef...(一致,完整)
Java三大框架解析[项目代码]
本文详细介绍了Java开发中的三大框架:Spring Boot、Hibernate和Struts。Hibernate作为ORM框架,提供了
对象
关系映射、透明的持久化、多数据库支持、自动SQL生成、缓存机制和事务管理等功能,简化了数据库操作。Struts框架基于MVC设计模式,通过ActionServlet、ActionForm和Action类等核心组件,实现了Web应用的请求处理和视图管理,尽管其配置复杂且性能有限,但在老旧项目中仍有应用。Spring Boot则因其轻量化和易用性成为现代Java开发的首选。文章还对比了各框架的优缺点,并推荐了替代方案。
Tomcat配置参数详解[项目源码]
本文详细介绍了Tomcat的三个关键配置参数:maxConnections、maxThreads和acceptCount,以及它们对服务性能的影响。maxConnections表示最大连接数,maxThreads表示最大线程数,acceptCount表示最大等待队列长度。文章通过火锅店的比喻形象地解释了这三个参数的关系,并提供了SpringBoot中配置这些参数的示例。此外,还介绍了如何通过代码配置容器以及如何替换Tomcat为Jetty或Undertow。这些配置参数的合理设置对于提升Tomcat服务的效率和性能至关重要。
研发管理
1,268
社区成员
28,284
社区内容
发帖
与我相关
我的任务
研发管理
软件工程/管理 管理版
复制链接
扫一扫
分享
社区描述
软件工程/管理 管理版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章