我有包括实体的集合A,AbstractElement,X,Y和Z.根实体A也有一个列表AbstractElement.实体X,Y并Z继承自AbstractElement.我需要添加的情况的可能性X,Y并Z以实例A.一种方法是使用一种方法,用于每种类型的,即addX,addY和addZ.这些方法将创建实例所需的值作为参数X,Y和Z.但是,每次我添加一个继承的新类型时AbstractElement,我都需要修改实体A,所以我认为这不是最好的解决方案.
另一种方法是使用抽象添加方法addAbstractElement来添加AbstractElement实例.但是,在这种情况下,该方法将参数作为参数AbstractElement.由于此方法将由位于聚合之外的实体调用,因此在DDD规则/建议之后,这些外部实体是否有权创建实例AbstractElement?我在Eric Evans的书中读到外部实体没有被授权保存除根之外的聚合实体的引用?
这类问题的最佳做法是什么?
谢谢
我想根据OSGi规范开发一个多模块应用程序.我们假设我的一个模块使用Apache Commons Logging 1.1.1.Spring Apache Commons Logging 1.1.1在其存储库中提供了捆绑版本,因此我可以在我的POM中添加相应的依赖项.
如果我安装我的包中Apache Felix,例如,是不是该依赖性Apache Commons Logging 1.1.1不会,直到我安装的捆绑解决Apache Commons Logging 1.1.1呢?我的包将尝试导入尚未导出的包.
我真的不明白依赖管理在OSGi世界上是如何运作的.我应该安装我的应用程序需要的每个包吗?另外,我不明白它如何与Maven集成?
提前感谢您的解释
编辑:我已经看到有一个名为OBR的Apache Felix子项目似乎可以促进捆绑管理(例如部署).但是,我们已经拥有了一个带有本地存储库,私有存储库的Maven架构...... OBR如何与Maven集成?
我正在使用VisualVM分析我的应用程序,我发现堆大小在大约3天内增加了大约7MB.当我使用内存采样器时,我也看到它java.lang.ref.WeakReference在实例编号的前五位.数量WeakReference正在增加,GC几乎没有影响.
任何的想法?
我有一个ThreadPoolExecutor我用自定义创建的ThreadFactory.当我调用execute()传递my 的方法时Runnable,Thread使用我的自定义创建一个new ThreadFactory.问题是我无法找到一种方法来访问里面的信息Runnable.
例如,我有一个Job实现的类Runnable.在里面Job,我有一个属性A,我想在newThread()我的自定义方法中访问ThreadFactory.问题是我不能将Runnable传递的as参数转换为,Job因为它不是一个Job实例,它是ThreadPoolExecutor.Worker类的一个实例,而这个类是private.