有人可以解释用于capi
包的内容是什么吗?是依赖注入吗?
连接两个BO(例如BasketBO
和BucketBO
以获取对其方法的访问权限并创建一些新数据)的正确方法是什么?
是通过管道还是通过一些新的共同对象?
答案 0 :(得分:5)
capi(cartridge API)包是将接口/类放入盒式磁带的公共API的位置。您可能已经注意到,几乎总是有一个内部包,这是公共API实现的地方。因此,SomeObjectMgr
包中的com.example.capi
接口和SomeObjectMgrImpl
包中的实现类com.example.internal
。您可以认为capi包是稳定的,而内部包可以在不同版本之间彻底改变。
关于你的第二个问题,如果他们在一起,则他们在一个aggregate中聚在一起,但聚合可以反对其他聚合。所以你不需要建立你需要建立的关系。示例BasketBO可以使用其访问方法访问BucketBO对象。您可以编写一个extension,其中包含操作两个BO的业务逻辑,并返回您需要的任何数据。但请记住,事务控制在管道/管道级别上。因此,如果您需要回滚事务,请在设计方法时考虑到这一点。
至于依赖注入,intershop使用google的guice框架。您可以找到有关如何使用它的更多信息here。