Java 如何拆分包?根据函数将子类移动到不同的包中,还是在soma包中组织?
我有一个类objectServerUser。serverUser被视为共享部分,它有两个子类SSHUser和FTPUser。SSHUser仅支持SSH包,FtpUser仅支持FTP包。那么,我应该将子类(ftpUser和sshUser)与serverUser放在同一个包中,还是根据函数放在不同的包中?有规则吗 从我的观点来看,我认为应该将sshUser和ftpUser放在ssh模块和ftp模块中,因为这些子类不能共享,但是很难导航。放在一个包中更容易导航并使代码更简单那么哪一个更好?有规则吗?Java 如何拆分包?根据函数将子类移动到不同的包中,还是在soma包中组织?,java,package,Java,Package,我有一个类objectServerUser。serverUser被视为共享部分,它有两个子类SSHUser和FTPUser。SSHUser仅支持SSH包,FtpUser仅支持FTP包。那么,我应该将子类(ftpUser和sshUser)与serverUser放在同一个包中,还是根据函数放在不同的包中?有规则吗 从我的观点来看,我认为应该将sshUser和ftpUser放在ssh模块和ftp模块中,因为这些子类不能共享,但是很难导航。放在一个包中更容易导航并使代码更简单那么哪一个更好?有规则吗?
这个问题与hwo类似,当子类不共享时,为异常类及其子类拆分包?在一个软件包中还是其他风格?最终取决于您-您在如何将代码构造成软件包方面有很大的灵活性 应考虑的一些选择:
- 将相关类打包在一起——即将不同类型的用户放在同一个包中。如果您将所有不同类型的用户类放在一起(例如,如果您正在重构用户处理功能),它可能会使您的源代码树更简单、更易于导航
- 将独立功能打包在一起——即在
包中保留所有SSH实现的类(包括SshUser)。通过这种方式,您将server.SSH
视为一个包含所有ssh特定功能的独立模块server.ssh
没有明显的技术理由选择另一个,因此这实际上取决于您认为哪一个会使您的代码库更易于管理和维护。这最终取决于您-您在如何将代码构造成包方面有很大的灵活性 应考虑的一些选择:
- 将相关类打包在一起——即将不同类型的用户放在同一个包中。如果您将所有不同类型的用户类放在一起(例如,如果您正在重构用户处理功能),它可能会使您的源代码树更简单、更易于导航
- 将独立功能打包在一起——即在
包中保留所有SSH实现的类(包括SshUser)。通过这种方式,您将server.SSH
视为一个包含所有ssh特定功能的独立模块server.ssh
没有明显的技术理由选择其中一种,因此这实际上取决于您认为哪种方法可以使您的代码库更易于管理和维护。谢谢,但我不知道是否有任何规则适用于这种情况?有时候,我不知道如何分开?正如你所说,Organized by one package使代码易于导航,但是Organized by functions可以在模块更改时使包在一个包中进行修改。我有一个想法:如果用户是shard,我们可以将其放入一个包中,如果不是,请再次将其放入相关的moduleThanks以获得答案!谢谢,但我不知道这个案子有没有什么规定?有时候,我不知道如何分开?正如你所说,Organized by one package使代码易于导航,但是Organized by functions可以在模块更改时使包在一个包中进行修改。我有一个想法:如果用户是shard,我们可以将其放入一个包中,如果不是,请再次将其放入相关的moduleThanks以获得答案!