这名在我的情况是比较正确:经理或工厂(或别的东西)?
-
22-07-2019 - |
题
我有下一个代码:
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
对象的实例。
不隶属于 StackOverflow