我有下一个代码:

PhotoFactory factory = PhotoFactory.getFactory (PhotoResource.PICASA);
PhotoSession session = factory.openSession (login, password);
PhotoAlbum album = factory.createAlbum ();
Photo photo = factory.createPhoto ();
album.addPhoto (photo);
if (session.canUpload ()) {
   session.uploadAlbum (album);
}
session.close ();

我不知道,我已经选择了正确的名称。这不是那么重要,但我只是好奇,什么都在你我的情况选择。另一个版本是经理:

PhotoManager manager = PhotoManager.getManager (PhotoResource.PICASA);
PhotoSession session = manager.openSession (login, password);
PhotoAlbum album = manager.createAlbum ();
Photo photo = manager.createPhoto ();
album.addPhoto (photo);
if (session.canUpload ()) {
   session.uploadAlbum (album);
}
session.close ();

UPD:我找到下一个例子在休眠的javadocs:

 Session sess = factory.openSession();
 Transaction tx;
 try {
     tx = sess.beginTransaction();
     //do some work
     ...
     tx.commit();
 }

是一个命名错误?

有帮助吗?

解决方案

在一个很高的水平,我把它叫做一个工厂,如果它只是为创建类的实例负责;和如果需要,以监督对象的持续存在一个管理器,并且它们如何与其它的目的,等等。

在代码片段你张贴你只是创建对象,因此,在我看来,工厂是一个合适的名字。虽然你应该记住什么之类的概念职责是,他们是否会在未来的扩展。

这是说,我会想到经典的一个工厂不用担心创建会议本身,而是必须传递到所需的createFoo电话会议,所以肯定有作为的事情都设置了一些蒙混因素。我想,我个人将有负责创建会话其他一些抽象的实体,然后通过这些进入PhotoFactory。

其他提示

我会选择第二溶液(经理),由于具有“工厂”结尾的对象一般被认为是工厂模式,其基本上创建对象的新实例的实现。这是不是在你的情况为例,因为它管理着一个会话特定的服务。

什么是在这个例子很好,就是其实你的第一个静态方法调用getManager事实上是一个工厂,因为它创建Manager对象的实例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top