如下伪代码,AServicedo2对P进行了操作,然后碰到的问题是PService里对P进行操作,如果调用了AServicedo2那么由于不是对P最新的引用,save时会把AServicedo2的修改覆盖掉。//Update2015年05月22日17:24:28@Ke_Wu这不应该是逻辑问题,事实上,我作为后来的调用者没必要也不可能知道AService::do2里的具体实现,但现在碰到问题了,那么就是设计的问题了classAService{functiondo2(pid){...p=P.getById(pid);p.s='zz';p.save();...}}classPService{functiondo1(pid){...p=P.getById(pid);p.s='yy';AService.do2(pid);...p.a='a';p.b='b';...p.save();//p.s仍旧是yy,zz被yy覆盖...}}classCService{functiondo4(cid){...c=C.getById(cid);pid=c.pid;AService.do2(pid);...}}
添加回答
举报
0/150
提交
取消