组织java代码的最佳方法。。。多个项目还是按包分开?
我将在eclipse中开始一个个人JAVA项目,在这个项目中,我和一个朋友创建了一个游戏服务器、游戏引擎和一个基于现有纸牌游戏的游戏。游戏服务器将排在最后,但现在我想集中精力构建纸牌游戏引擎,然后是游戏本身 在学校里,我们只需要创建像组织java代码的最佳方法。。。多个项目还是按包分开?,java,eclipse,project,game-engine,packages,Java,Eclipse,Project,Game Engine,Packages,我将在eclipse中开始一个个人JAVA项目,在这个项目中,我和一个朋友创建了一个游戏服务器、游戏引擎和一个基于现有纸牌游戏的游戏。游戏服务器将排在最后,但现在我想集中精力构建纸牌游戏引擎,然后是游戏本身 在学校里,我们只需要创建像gameEngine.which这样的软件包,然后不同的游戏就会出现在像game.gameName.which这样的软件包中。我在考虑让游戏引擎成为一个独立的项目,然后让游戏也成为一个独立的项目,而不是像我在学校做的那样,把它们都放在一个项目中,并根据软件包将它们分
gameEngine.which
这样的软件包,然后不同的游戏就会出现在像game.gameName.which
这样的软件包中。我在考虑让游戏引擎成为一个独立的项目,然后让游戏也成为一个独立的项目,而不是像我在学校做的那样,把它们都放在一个项目中,并根据软件包将它们分开。在我的实习期间,我们有多个项目一起工作,但在课堂上根本没有涉及到这一点
这样做和那样做有什么区别吗?或者它们基本上是等价的?谢谢 如果“X”可以单独使用,或者至少有(或可能有)两个不同的项目使用“X”,那么我认为您应该为“X”创建一个单独的项目。否则,一个包就可以了。使用多个项目而不是包有一些优点
您可以分别编译、测试和运行服务器、客户端和引擎。 我知道这在包装上也是可能的,但会更干净。如果有像git中那样的代码协作,那么管理起来就会容易得多 如果您对在客户机中将引擎用作模块持怀疑态度,则始终可以将一个项目用作另一个项目的库。这样,您可以将工作分开,但在开发游戏时可以轻松地使用这些功能 另一方面,也有一些缺点。您的代码将是三个独立的实体。因此,如果您习惯于到处移动一个jar文件,并向单个类发出参数,告诉它运行哪个模块,那么这种项目方法可能不起作用 这一切都取决于您的应用程序和您的风格。如果我是你,我会做三个项目
祝你好运。如果我正确地理解了你的情况,那么此时你不应该太担心代码组织。当然,在一些项目中,我们可以事先清楚地了解项目的进展情况。在许多情况下并非如此 在您的情况下,当您开始实施时,您将更加清楚地了解要采取的方向和组织。使用像eclipse这样的IDE的一个优点是,您可以在以后的阶段重构代码(包括包,甚至跨项目移动包/类)。对于eclipse,代码不仅仅是文件/目录。它正在查看解析树,因此可以让您安全地移动很多好东西——跨包或项目移动代码是它可以做的最简单的事情之一 只需专注于你必须做的事情,并尝试在真正的事情上取得进展。如果你不得不担心多个项目,你就会知道什么时候该做。我建议从以下几点开始:
- 现在创建一个项目。首先查找标准且唯一的包前缀。假设你决定使用类似“org.abc”的东西(只是一个例子,不是一个好例子)
- 现在开始你的项目。当您不断添加类时,请关注如何按照包的方式组织好。继续添加软件包。例如
- org.abc.game.engine
- org.abc.game.util
- org.abc.game.games.mario
- org.abc.game.engine.phy
- org.abc.game.server
- org.abc.game.common
- 将当前项目称为GameMario
- 将整个org.abc.game.common和org.abc.game.util以及一些文件移动到名为GameCommon的项目中。同一个包可以存在于两个项目中(在许多情况下确实存在)
- 将org.abc.game.engine、org.abc.game.server及其所有子包移动到新项目GameServer,并继续在该项目中添加游戏服务器代码
- GameMario和GameServer都将依赖于GameCommon