我在JavaEE上开发相对较新。我想知道在将参数传递到会话bean中以进行对象创建或删除调用时,最佳格式是什么。
对于我的后端,我使用带有DAO的DTO在数据库上运行创建,更新,删除和读取操作
public class BusinessObject {
public String name;
public int id;
// Assume constructor to init these 2 fields.
}
我有一个简单的DAO界面:
public interface BusinessDAO {
public void createBusinessObject(BusinessObject bo);
public void deleteBusinessObject(BusinessObject bo);
public void updateBusinessObject(BusinessObject bo);
public void findBusinessObject(BusinessObject bo);
}
(我认为现阶段BusinessDAO
的实施无关紧要)
关于我的实际问题 - 如果我有一个远程(无状态会话bean)EJB接口,我应该在远程EJB接口中定义一个方法:
public void addBusinessObject(String name, int id);
或者类似的东西:
public void addBusinessObject(BusinessObject bo);
我有一个简单的客户端程序,可以调用这些方法中的任何一个。
我的想法是,对于对象创建,BusinessObject bo
定义会更好用,但我似乎认为我可以遵循远程接口中其他定义的模式。
我不知道如何为findObject(BusinessObject bo)
标准做法是创建BusinessObject
并且只提供该对象中的ID字段,然后DAO实现将填充的对象返回给客户端(通过会话bean)吗?
或者,最好是将int id
传递到findObject
方法,而只返回BusinessObject
?
答案 0 :(得分:2)
至于findObject()
:只需传递ID即可。您正在设计远程接口。无论如何,如果你的DTO有很多字段,这会浪费带宽。
至于addBusinessObject()
:通过DTO。如果您的DTO中有大量字段,这会“更好地扩展”:如果您添加/删除字段,它将在以后简化维护。
另一方面,如果您有类似changeOneFieldOnly()
的内容,则可以传递ID
和新值(而不是完整的DTO)。特别是在远程接口的情况下,根据用例定制方法(根据经验:对于每个用户操作,只需调用远程服务层)。
所以从用例角度看远程接口(而不是创建/添加/删除)。