猿问

如何改进这段代码

如下伪代码,
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);
...
}
}
白衣染霜花
浏览 352回答 0
0回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答