java - 在 Java 中将子类的创建限制为其父类(或其他)

标签 java

我有一个父类(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/

相关文章:

java - Hibernate - 一对多关系 - 外键始终为 "null"

java - 将文件从 Azure 文件共享目录移动到 unix 目录和备份目录(在 Azure 文件共享内)

java - HttpURLConnection 超时设置

java - 如何查找哪个memcached服务器存储哪个键值对

java - 安卓 ZXing 二维码扫描

java - 从一组键(所有键都具有相同的值)构建 HashMap 的惯用方法是什么

Java cipher.doFinal() 写入额外的字节

java - 插入到已排序的 LinkedList Java

java - 正则表达式模式接受一个或多个IP地址?

Java 同级删除抛出 ConcurrentModificationException