Java类中互相调用问题(主动方和被动方)
我现在在练习一个小项目。 遇到点问题。
项目实体: 主人 宠物 商店
主人 和 商店都具备拥有买宠物和卖宠物的方法 buy() 和 sell();
现在就是主人买 我调用了 商店卖的方法
商店的卖方法中调用了 主人买的方法
商店的买方法调用主人的卖
主人的卖调用了商店的买
我晕了! 逻辑上是这样的
但是 问题来了 死循环! 应该是有一个主动方和被动方。 我如果我讲主人定位主动方该怎么改一下?
代码如下:
[color=Red]主人的买方法[/color]
- Java code
/** * 主人的买 */ @Override public boolean buy(Pet pet) throws Exception { IPetStorsBiz storsBiz = new PetStorsBizImpl(); // TODO Auto-generated method stub pet.setOwnerID(pet.getOwner().getId()); pet.setStoreID(0); pet.setNewBreed(2); petDao.update(pet); pet.getOwner().setMoney(pet.getOwner().getMoney() - 5); petOwnerDao.update(pet.getOwner()); storsBiz.sell(pet); return true; }- Java code
/** * 主人的卖 */ @Override public boolean sell(Pet pet) throws Exception { // TODO Auto-generated method stub IPetStorsBiz storsBiz = new PetStorsBizImpl(); storsBiz.buy(pet); pet.getOwner().setMoney(pet.getOwner().getMoney() + 5); //storsBiz.buy(pet); return true; }- Java code
/** * 商店买 */ @Override public boolean buy(Pet pet) throws Exception { IPetOwnerBiz ownerBiz = new PetOwnerBizImpl(); pet.setStoreID(pet.getStore().getId()); pet.setOwnerID(0); pet.setNewBreed(2); petDao.update(pet); pet.getStore().setBalance(pet.getStore().getBalance() + 5); petStoreDao.update(pet.getStore()); ownerBiz.sell(pet); return true; }- Java code
/** * 商店卖 */ @Override public boolean sell(Pet pet) throws Exception { // TODO Auto-generated method stub IPetOwnerBiz ownerBiz = new PetOwnerBizImpl(); ownerBiz.buy(pet); pet.getStore().setBalance(pet.getStore().getBalance() - 5); return true; }[解决办法]