日期:2014-05-20  浏览次数:20659 次

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;
    }

[color=Red]主人的卖方法[/color]
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;
    }

[color=Red]商店的买方法[/color]
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;
    }

[color=Red]商店的卖方法[/color]
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;
    }



------解决方案--------------------
探讨
刚接触三层架构 老师说要互相掉 我已经晕了!