我知道工厂方法是用于创建对象的合适设计模式,而客户端不需要知道对象需要哪个具体类。但这假设工厂在创建对象之前就知道了标准
但是,我的情况有点不同。我需要在超类中创建一个对象,或者通常是一个抽象类。一旦构造了对象(AND ONLY THEN),就可以应用逻辑来确定它可以属于哪个类别,即子类。
想象一下,你是一家从大学招聘人才的大公司。孩子们真的不知道他们想做什么,你会在训练后给他们分配位置。因此,首先有人是Employee
,然后在接下来的六个月,他们会演变为Programmer
,QA
,Analyst
等等,具体取决于他们的倾向。因此,我需要在创建后将Employee
课程传播到Programmer
,QA
,Analyst
等等。然后每个课程将继续Employee
,但每个课程都会有他们自己独特的属性。在启动时,它们都只是Employee
,所以员工不能抽象。
我想有一个子类创建方法返回子类,但这意味着有两个实例,初始超类,最后是我想要的子类,此时我不再需要超类。我知道我可以将父对象设置为null,并在创建子类后将其设置为GC,但我想知道是否有更优雅的方法来执行此操作,即设计模式。
答案 0 :(得分:1)
一旦构造了对象(AND ONLY THEN),就可以应用逻辑来确定它可以属于哪个类别,即子类。
这根本不会发生。与你的类比不同,Java中的对象在其生命周期内永远不会改变类型。
如果你能用具体的术语解释为什么你认为你需要这个,我们可以提供帮助 - 但我怀疑要么要归结为 >或它将是一个工厂类,工厂将在其中进行一些处理,并将该处理的结果传递给相应的子类构造函数,以避免必须重新计算数据。