用java触发器的实现松耦合
1、解决的问题:一个客户,有多个销售记录,有多个合同记录,有多个服务记录,有多个......,在这种结构,为了实现松耦合,销售记录、合同记录中,只记录下客户的id和name(以方便展示),但:当一个客户名称更新时,所有和它相关的数据如何同步更新。有一种方法,就是将客户更新的地方写代码更新和它相关的数据,但这样对紧紧耦合在一起。第二种方法,手动写一个类似触发器的东西来实现。
2、bo类结构展示
客户类:
...List<TriggerClientUpdateInf> ls =TriggerClientUpdateInf.ls;for(TriggerClientUpdateInf tr:ls){ tr.afterClientUpdate(dao,clientDto); //}...
如此,便可用实现TriggerClientUpdateInf来实现构耦合。(1)在客户更新处,会将所有放入list中的实现TriggerClientUpdateInf接口的对象的afterClientUpdate方法执行一遍。谁放的,放的什么,我不关心,我只认这个接口,执行一扁即可。(2)其它关心客户更新的模块,如销售记录,只需要实现接口,并将一个实例放入list中即可!