A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 周峰 于 2012-2-24 19:43 编辑

我现在在练习一个小项目。  遇到点问题。  
项目实体: 主人   宠物   商店

主人 和 商店都具备拥有买宠物和卖宠物的方法 buy() 和 sell();

现在就是主人买  我调用了 商店卖的方法
商店的卖方法中调用了 主人买的方法

商店的买方法调用主人的卖
主人的卖调用了商店的买

我晕了! 逻辑上是这样的

但是   问题来了 死循环! 应该是有一个主动方和被动方。 我如果我讲主人定位主动方该怎么改一下?


代码如下:


主人的买方法

  1.                 /**
  2.          * 主人的买
  3.          */

  4.         @Override
  5.         public boolean buy(Pet pet) throws Exception {
  6.                 IPetStorsBiz storsBiz = new PetStorsBizImpl();
  7.                 // TODO Auto-generated method stub
  8.                 pet.setOwnerID(pet.getOwner().getId());
  9.                 pet.setStoreID(0);
  10.                 pet.setNewBreed(2);
  11.                 petDao.update(pet);
  12.                 pet.getOwner().setMoney(pet.getOwner().getMoney() - 5);
  13.                 petOwnerDao.update(pet.getOwner());
  14.                 storsBiz.sell(pet);
  15.                 return true;
  16.         }
复制代码
主人的卖方法

  1.                 /**
  2.          * 主人的卖
  3.          */
  4.         @Override
  5.         public boolean sell(Pet pet) throws Exception {
  6.                 // TODO Auto-generated method stub
  7.                 IPetStorsBiz storsBiz = new PetStorsBizImpl();
  8.                 storsBiz.buy(pet);
  9.                 pet.getOwner().setMoney(pet.getOwner().getMoney() + 5);
  10.                 //storsBiz.buy(pet);
  11.                 return true;
  12.         }
复制代码
商店的买方法


  1.         /**
  2.          * 商店买
  3.          */
  4.         @Override
  5.         public boolean buy(Pet pet) throws Exception {
  6.                 IPetOwnerBiz ownerBiz = new PetOwnerBizImpl();
  7.                 pet.setStoreID(pet.getStore().getId());
  8.                 pet.setOwnerID(0);
  9.                 pet.setNewBreed(2);
  10.                 petDao.update(pet);
  11.                 pet.getStore().setBalance(pet.getStore().getBalance() + 5);
  12.                 petStoreDao.update(pet.getStore());
  13.                 ownerBiz.sell(pet);       
  14.                 return true;
  15.         }
复制代码
商店的卖方法


  1.         /**
  2.          * 商店卖
  3.          */
  4.         @Override
  5.         public boolean sell(Pet pet) throws Exception {
  6.                 // TODO Auto-generated method stub
  7.                 IPetOwnerBiz ownerBiz = new PetOwnerBizImpl();
  8.                 ownerBiz.buy(pet);
  9.                 pet.getStore().setBalance(pet.getStore().getBalance() - 5);
  10.                 return true;
  11.         }
复制代码

1 个回复

倒序浏览
问题解决了   吃完饭想了下 思路清晰点了!应该是改为

我解决了!~ 我的方法是这样的   

主人买 主人卖 写好 主人为主动方

商店卖 就调用主人买

商店买 也调用主人卖


Oracle数据不一直变了!~ 也不死循环了~

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马