我有一个父类(super class) GameObject,它是游戏中所有对象的父类(super class)型。 我想将所有创建和管理代码作为静态方法包含在其中;它应该是唯一能够创建扩展 GameObject 的其他对象的类。 有时我需要创建一个新对象,有时我会有一个对象列表,我会出于性能原因从中挑选对象。
有没有一种方法可以限制 child 的构造函数对其基类的访问,或者有一种设计模式来做我想做的事?
最佳答案
1) 使父类(super class)抽象
2) 编写一个工厂方法以从父类(super class)类型创建子类。
由于基类(父类(super class))是抽象的,子类总是基类类型。
您可以避免 FactoryMethod 中的 if 条件。引用我的帖子@Inheritance-aware class to value map to replace series of `instanceof`
例如
SuperClass object = (SuperClass) Class.forName(specificClassName).newInstance();
关于java - 在 Java 中将子类的创建限制为其父类(或其他),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32419947/