从语言的角度来看,包允许在不同的上下文中使用相同的类名。
如果将它们放在不同的包中,则可能有多个名为 SuperMario 的类,因为
package 限定了类名。
从应用程序的角度来看,包允许您表达应用程序的结构。
如果有人想理解你的源代码,它会首先查看包。因此任何好的包装设计
将允许此人更快地理解您的代码。
因此,对于大型代码库,拥有良好、直观的包结构非常重要。
以下是我应用于包装设计的一些原则:
1.只要您愿意随着应用程序的发展重构您的包,您就不必预先设计完美的包结构。
2.将处理应用程序相同方面的类放在同一个包中。
com.supermario.gui
com.supermario.model
com.supermario.events
3.当你觉得一个包包含太多的类并且变得拥挤时,将它重构为子包。
com.supermario.model 95 classes
重构为
com.supermario.model.ape 30 classes
com.supermario.model.stair 40 classes
com.supermario.model.ton 25 classes
4.当你觉得一个包包含的子包太多,拥挤不堪时,将它们重构为子包的子包,或者合并子包:
com.supermario.gui.levela01
...
com.supermario.gui.levelz99
重构为
com.supermario.gui.level
com.supermario.gui.level.a
com.supermario.gui.level.a.01
...
com.supermario.gui.level.z
com.supermario.gui.level.z.99
说到底,设计没有对错之分,只有通俗易懂的设计和结构。