![]() |
1
7
这听起来是个好地方 factory pattern . 基本上,使用返回类型为C的静态方法创建一个类cfactory。然后该方法可以决定创建a或b并返回它。 |
![]() |
2
3
从C的构造函数中无法做到这一点。您可以在C中创建一个工厂方法,根据收到的数据创建A或B:
|
![]() |
3
3
这就是所谓的工厂模式。 工厂模式: 简单来说,如果我们有一个超类和n个子类,并且根据提供的数据,我们必须返回其中一个子类的对象,我们使用工厂模式。 您的实现将类似于:
签出示例: http://www.allapplabs.com/java_design_patterns/factory_pattern.htm |
![]() |
4
1
为什么您需要从C的构造函数内部完成这项工作?移动任何逻辑来决定将哪个类型实例化到其他地方,然后在那里创建具体的类型? |
![]() |
5
1
抽象工厂方法应该帮助您决定使用C的哪个实现
然后您可以使用抽象工厂方法构建列表… 希望这有帮助… |
![]() |
6
0
不可以。不能从C的构造函数创建A或B对象。 您可以从C中的静态方法创建A或B,或者,您可以创建一些这样做的工厂类。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 3 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 3 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 3 月前 |
![]() |
rudraraj · java中未声明最终变量 3 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 3 月前 |