Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 在这种情况下如何处理代码重用?_Oop_Code Reuse - Fatal编程技术网

Oop 在这种情况下如何处理代码重用?

Oop 在这种情况下如何处理代码重用?,oop,code-reuse,Oop,Code Reuse,我开始为HTML5游戏制作引擎。很快,我对另一个项目产生了兴趣,基本上是进化模拟。模拟将在服务器上运行,但实际渲染将在客户端进行。我意识到我可以在服务器端使用游戏引擎中的大部分类和代码 现在,我不知道该怎么办。我可以选择创建一个“单片引擎”,它将同时具有特定功能和通用功能。或者,我可以创建一个单独的“游戏引擎”,并使用它渲染模拟和制作游戏,以及一个单独的具有模拟特定功能的“模拟引擎” 单授权方法存在代码库中的代码太大和不相关的问题,而单独的方法存在两个代码库中的类相同的问题 我如何处理这种情况

我开始为HTML5游戏制作引擎。很快,我对另一个项目产生了兴趣,基本上是进化模拟。模拟将在服务器上运行,但实际渲染将在客户端进行。我意识到我可以在服务器端使用游戏引擎中的大部分类和代码

现在,我不知道该怎么办。我可以选择创建一个“单片引擎”,它将同时具有特定功能和通用功能。或者,我可以创建一个单独的“游戏引擎”,并使用它渲染模拟和制作游戏,以及一个单独的具有模拟特定功能的“模拟引擎”

单授权方法存在代码库中的代码太大和不相关的问题,而单独的方法存在两个代码库中的类相同的问题

我如何处理这种情况


如果它改变了什么,我将使用Javascript进行编码。

听起来您需要分离两种用法之间的共同功能,并将这些片段提取到自己的库中,我将其称为“引擎核心”。然后你基本上有三件事:“游戏引擎”,“模拟引擎”和“引擎核心”。游戏引擎和模拟引擎都会引用引擎核心,所以每当您对引擎核心进行更新时,游戏引擎和模拟引擎都会收到更新。如何精确地实现这一点取决于你使用的语言,但是这个想法是相同的。

在C或C++中,你会把你的通用代码存档到可以链接的库中,在java中你会使用包,在perl中你会使引擎成为一个单独的模块。无论使用何种语言,这都是正确的做法。