让我们假设我有一个AccountService,通知何时创建或删除帐户。以下两种实施方式有何不同?
@Stateless
public class AccountService {
@Inject
protected Event<AccountCreated> accountCreated;
@Inject
protected Event<AccountDeleted> accountDeleted;
public UserAccount createAccount(...) {
...(do stuff)
accountCreated.fire(new AccountCreated(...));
}
public UserAccount deleteAccount(...) {
...(do stuff)
accountDeleted.fire(new AccountDeleted(...));
}
}
和更简单的版本:
@Stateless
public class AccountService {
@Inject
protected Event<Object> events;
public UserAccount createAccount(...) {
...(do stuff)
events.fire(new AccountCreated(...));
}
public UserAccount deleteAccount(...) {
...(do stuff)
events.fire(new AccountDeleted(...));
}
}
我目前正在使用第二种方法,但我想知道我是否做得不对。
答案 0 :(得分:0)
您所询问的主要是良好做法,或在某些情况下是个人偏好(或多数人的声音?)。
这两种方法都可行,但第一种方法会被认为是更清洁的,因为它清楚地显示了你从第一次看它时的工作。
此外,如果你开始使用限定符,你的第二个例子会变得更加混乱。
如果您要询问有关Instance<Object>
的类似问题,那么还有其他原因(使用第一种方法) - 部署期间的解决方案检查,优化无效。