【问题标题】:Design Patterns: Should a factory update and delete too?设计模式:工厂也应该更新和删除吗?
【发布时间】:2014-05-22 14:51:27
【问题描述】:

我目前正在学习设计模式。我使用工厂从数据库中获取数据,创建一个对象,然后返回它。但是当我想更新或删除数据库中的数据时,我可以使用什么样的设计模式呢?工厂也可以进行更新和删除,还是存在另一种设计模式? Java 或 PHP 中的示例会很有帮助。

感谢您的支持!

【问题讨论】:

标签: database oop object design-patterns


【解决方案1】:

不,不是真的。工厂制造东西,仅此而已。在使用 ActiveRecord 模式的情况下,实体有一个保存方法。使用 Hibernate 之类的 ORM,会话会保留实体。

在 Java 中,你有一个 SessionFactory(或 EntityManagerFactory),它创建 Hibernate Sessions(或 EntityManagers),而 Hibernate Session 具有诸如 save 之类的方法,它可以获取一个对象并将其持久化或对其进行任何操作。实体对象将使用新值进行更新,然后将其作为参数传递给 session.save 调用(尽管在许多情况下 Hibernate 可以找出更改的内容,因此不需要显式调用 save ),如下所示:

EntityManager manager = entityManagerFactory.create();
MyEntity entity = manager.findById(someid);
entity.setName("new name");
manager.save(entity);

【讨论】:

  • 感谢您的回答。如果我猜对了,它会是这样的:Item item = ItemFactory.create(); item.changeSomething(change); item.update();
  • 但是EntityManagerFactorycreate方法得到的只是一个没有数据的对象。这样做有什么好处?
  • 它设置持久性上下文,例如从数据源检索连接和初始化一级缓存。
  • 啊,我明白了。谢谢你的解释。我想确保我理解正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多