什么时候使用不同的包装?

时间:2017-01-27 23:11:26

标签: java

我想开始创建应用程序,但是,我不知道何时应该使用包。如何使用包裹?你怎么知道什么类放在什么包里?

3 个答案:

答案 0 :(得分:2)

除了涉及不超过一个文件的非常简单的程序之外,您应该始终使用包。典型的包结构如下

com.<your_company>.<your_project>.<sub_system>....

org.<your_organization>.<your_project>.<sub_system>....

或(如果您不属于任何组织或公司)

<some_name>.<your_project>.<sub_system>....

上面的...表示子系统中有更多结构。和 <some_name>只是一些名称,不会轻易与其他人使用的名称冲突。别担心。即使你选择了一个名字 已被其他人使用,直到你的那一刻,你才会遇到麻烦 尝试将两个同名的包编译在一起(显然是这样 不应该被允许)。因此,这些名称都是<some_name>

的有效选择
playground
mytest
chapter1
tutorial

按照惯例,包名称始终为小写。相反,类名始终以大写字符开头。例如,在

com.google.gwt.core.client.EntryPoint;

包名称为com.google.gwt.core.client,类名为EntryPoint

学习的好方法是了解其他项目如何组织他们的包和类。下面我展示一些示例(包括包名和类名):

org.hibernate.annotations.Cache;
org.hibernate.annotations.CacheConcurrencyStrategy;

com.google.gwt.core.shared.GWT;

com.google.gwt.core.client.EntryPoint;
com.google.gwt.user.client.Window;
com.google.gwt.user.client.Window.Location;
com.google.gwt.user.client.rpc.AsyncCallback;
com.google.gwt.user.client.ui.RootPanel;
com.smartgwt.client.util.DateUtil;
com.smartgwt.client.util.SC;
com.smartgwt.client.widgets.Canvas;
com.smartgwt.client.widgets.HTMLFlow;
com.smartgwt.client.widgets.layout.VLayout;

我想做的另一个观察是包名 通常由上到下组织(从大到小)。这个惯例是 相反的 互联网域名形成的惯例(从小到大)。

在上面的示例中,Google的GWT项目已将其包名称为

com.google.gwt....

虽然Google的互联网域名采用这种形式

....google.com

许多公司和组织使用其域名的反向来形成其包的前缀。

答案 1 :(得分:1)

使用包按关注点分隔应用程序中的类。这有助于您:

  • 避免不相关的类之间的名称冲突
  • 将相关类组合在一起并隔离不同包中的不相关类

所有这些都应该可以提高应用程序的可维护性。如果你能为你的包找到合理的名字,你甚至可以了解你的包中的类的目的是什么。

您可以阅读更多相关信息in the official java tutorial。一个非常常见的用例是分开

  • 来自
  • 的应用程序逻辑(也称为model
  • presentation / gui code(通常称为view

了解Java本身如何使用包来分离事物:

  • java.lang.Math进行计算
  • javax.swingjava.awt用于gui frameworks
  • java.nio用于缓冲输入/输出

答案 2 :(得分:0)

在Java中使用包以防止命名冲突,控制访问,使类,接口,枚举和注释的搜索/定位和使用更容易等。

如果您的课程有少量课程,例如3课程 你可能不必将它们分成包装。

您的课程以逻辑方式分成包。

例如:

如果您有加密数据的程序,则每个加密算法 可以分为几类,所有这些加密类都可以在同一个包中

相关问题