根据条件将对象传播到创建子类的后期

时间:2012-10-11 22:15:15

标签: java design-patterns

我知道工厂方法是用于创建对象的合适设计模式,而客户端不需要知道对象需要哪个具体类。但这假设工厂在创建对象之前就知道了标准

但是,我的情况有点不同。我需要在超类中创建一个对象,或者通常是一个抽象类。一旦构造了对象(AND ONLY THEN),就可以应用逻辑来确定它可以属于哪个类别,即子类。

想象一下,你是一家从大学招聘人才的大公司。孩子们真的不知道他们想做什么,你会在训练后给他们分配位置。因此,首先有人是Employee,然后在接下来的六个月,他们会演变为ProgrammerQAAnalyst等等,具体取决于他们的倾向。因此,我需要在创建后将Employee课程传播到ProgrammerQAAnalyst等等。然后每个课程将继续Employee,但每个课程都会有他们自己独特的属性。在启动时,它们都只是Employee,所以员工不能抽象。

我想有一个子类创建方法返回子类,但这意味着有两个实例,初始超类,最后是我想要的子类,此时我不再需要超类。我知道我可以将父对象设置为null,并在创建子类后将其设置为GC,但我想知道是否有更优雅的方法来执行此操作,即设计模式。

1 个答案:

答案 0 :(得分:1)

  

一旦构造了对象(AND ONLY THEN),就可以应用逻辑来确定它可以属于哪个类别,即子类。

这根本不会发生。与你的类比不同,Java中的对象在其生命周期内永远不会改变类型。

如果你能用具体的术语解释为什么你认为你需要这个,我们可以提供帮助 - 但我怀疑要么要归结为 >或它将是一个工厂类,工厂将在其中进行一些处理,并将该处理的结果传递给相应的子类构造函数,以避免必须重新计算数据。