我想开始创建应用程序,但是,我不知道何时应该使用包。如何使用包裹?你怎么知道什么类放在什么包里?
答案 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
)
view
)了解Java本身如何使用包来分离事物:
java.lang.Math
进行计算javax.swing
,java.awt
用于gui frameworks java.nio
用于缓冲输入/输出答案 2 :(得分:0)
在Java中使用包以防止命名冲突,控制访问,使类,接口,枚举和注释的搜索/定位和使用更容易等。
如果您的课程有少量课程,例如3课程 你可能不必将它们分成包装。
您的课程以逻辑方式分成包。
例如:
如果您有加密数据的程序,则每个加密算法 可以分为几类,所有这些加密类都可以在同一个包中