我有此服务代码
pairwise
在这样的控制器中调用它:
@Service
public class StoreCartService {
public boolean addItem(Cart cart, Long productId, Integer quantity) {
cart.handleRequest(productId,"+"+quantity);
return true;
}
public boolean deleteItem(Cart cart, Long productId, Integer quantity) {
cart.handleRequest(productId,"-"+quantity);
return true;
}
}
和
return storeCartService.addItem(cart,cartItem.getProductId(),cartItem.getQuantity() );
我想过像这样重构:
return storeCartService.deleteItem(cart,cartItem.getProductId(),cartItem.getQuantity() );
}
abstract class Item{
abstract boolean processItem(Cart cart, Long productId, Integer quantity);
客户端代码中的取决于您调用它的位置......
class CartItemAddition extends Item{
boolean processItem(Cart cart, Long productId, Integer quantity){
cart.handleRequest(productId,"+"+quantity);
}
}
class CartItemDeletion extends Item{
boolean processItem(Cart cart, Long productId, Integer quantity){
cart.handleRequest(productId,"-"+quantity);
}
}
或
Item item = new CartItemAddition();
但是我不能这样做,因为Service对象正在自动装配。我不能像我想要的那样实例化它。我该如何解决这个问题?
答案 0 :(得分:0)
你可以通过名字自动装配。
@Resource(name = "cartItemAddition")