加载中...

工作单元模式(Unit of Work)维护一次业务操作中被读取、新增、修改、删除的对象清单,在操作结束时统一计算变更并在一个事务里写回数据库。该模式由 Martin Fowler 在《企业应用架构模式》中系统描述。
工作单元登记对象的新增、脏(已修改)、删除状态,提交(commit)时按正确顺序生成并执行 SQL,要么全部成功要么整体回滚;同时它常与标识映射(Identity Map)配合,确保同一记录在一次工作单元内只有一个对象实例。
Hibernate 的 Session、Entity Framework 的 DbContext、SQLAlchemy 的 Session 都是工作单元的实现,与仓储模式配合构成典型的数据访问层。
优点是事务边界清晰、减少数据库往返、自动处理写入顺序;缺点是长事务持有大量跟踪对象消耗内存,隐式提交时机可能让开发者困惑。

登录 后参与讨论
暂无讨论,来发表第一条评论吧