0

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

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

想象一下,您是一家从大学招聘人才的大公司。孩子们真的不知道他们想做什么,你会在训练后给他们分配位置。所以起初某人是一个Employee,然后六个月后他们演变成一个Programmer,等等QAAnalyst这取决于他们的倾向。所以我需要Employee在创建后将类传播到Programmer,QAAnalyst。然后每个都会继续存在,Employee但每个都会有自己独特的属性。启动时,它们都是公正Employee的,因此 Employee 不能是抽象的。

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

4

1 回答 1

1

一旦对象被构造(并且仅在那时),就可以应用逻辑来确定它可以属于哪个类别,即子类。

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

如果你能具体解释你为什么认为你需要这个,我们可能会提供帮助 - 但我怀疑它要么归结为组合,要么是工厂课程,工厂将从那里开始进行一些处理,并将该处理的结果传递给适当的子类构造函数,以避免必须重新计算数据。

于 2012-10-11T22:17:48.327 回答