java 包命名_【Java】包的命名规则
命名規(guī)范
包:所有單詞的字母小寫,之后每個單詞用-隔開,如 org.nemo.demo
常量:所有單詞的字母大寫,之后每個單詞用_隔開,如 FLAG
類:所有單詞的首字母大寫,如 TestJava
pascal命名法
屬性:第一個單詞的首字母小寫,之后每個單詞的首字母大寫,如 studentName
camel命名法:駝峰命名法。
方法:第一個單詞的首字母小寫,之后每個單詞的首字母大寫,如 getInfo()
Java包的命名規(guī)則
util:對應英文utility(實用工具),一般存放工具類,就像java.lang.util包一樣存放著各種各樣的工具類方便你編程,這里你可以放自己寫好的工具類為自己的程序提供方便。
business:一般存放業(yè)務類,處理程序業(yè)務的功能類就放在這里。
control:一般存放控制類,后臺控制的一些類就放在這里,例如J2EE里的Servlet。
dao:對應英文Data Access Object,數(shù)據(jù)訪問對象,一般存放與數(shù)據(jù)庫(文本、Excel等)打交道的類,只關心數(shù)據(jù)庫的增刪改查。
用于操作的封裝。
vo:對應英文Value Object,值對象,一般存放實體(Model)。
vo表示value object,主要實現(xiàn)數(shù)據(jù)的封裝,常與數(shù)據(jù)庫中一個表或視圖相對應。
該類的實現(xiàn)基本上是一個固定的模板,因此很多建模工具(如rose等)能夠根據(jù)數(shù)據(jù)庫中的表和視圖自動生成該文件,此過程稱為“反向工程”。
driver:一般存放驅(qū)動類,一般顯示菜單,調(diào)用dao等包中的方法來驅(qū)動程序。一般擁有在其中使用方法的主方法。
Object 劃分
PO(persistent object)持久對象
PO 就是對應數(shù)據(jù)庫中某個表中的一條記錄,多個記錄可以用 PO 的集合。PO 中應該不包含任何對數(shù)據(jù)庫的操作。
DO (Domain Object)領域?qū)ο?/p>
就是從現(xiàn)實世界中抽象出來的有形或無形的業(yè)務實體。
TO(Transfer Object)數(shù)據(jù)傳輸對象
不同的應用程序之間傳輸?shù)膶ο?/p>
DTO (Data Transfer Object)數(shù)據(jù)傳輸對象
這個概念來源于 J2EE 的設計模式,原來的目的是為了 EJB 的分布式應用提供粗粒度的數(shù)據(jù)實體,以減少分布式調(diào)用的次數(shù),從而提高分布式調(diào)用的性能和降低網(wǎng)絡負載,但在這里,泛指用于展示層與服務層之間的數(shù)據(jù)傳輸對象。
VO(Value Object)值對象
通常用于業(yè)務層之間的數(shù)據(jù)傳遞,和 PO 一樣也是僅僅包含數(shù)據(jù)而已。但應是抽象出的業(yè)務對象,可以和表對應,也可以不和表對應,這根據(jù)業(yè)務的需要。用 new 關鍵宇創(chuàng)建,由 GC 回收的。
View Object:視圖對象;
接受頁面?zhèn)鬟f來的數(shù)據(jù),封裝對象
將業(yè)務處理完成的對象,封裝成頁面要用的數(shù)據(jù)
BO(Business Object)業(yè)務對象
從業(yè)務模型的角度看,見 UML 元件領域模型中的領域?qū)ο蟆7庋b業(yè)務邏輯的 Java 對象,通過調(diào)用 DAO 方法,結(jié)合 PO、VO 進行業(yè)務操作。Business Object:業(yè)務對象主要作用是把業(yè)務邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。比如一個簡歷,有教育經(jīng)歷、工作經(jīng)歷、社會關系等等。我們可以把教育經(jīng)歷對應一個 PO,工作經(jīng)歷對應一個 PO,社會關系對應一個 PO。建立一個對應簡歷的 BO 對象處理簡歷,每個 BO 包含這些 PO。這樣處理業(yè)務邏輯時,我們就可以針對 BO 去處理。
POJO(Plain Ordinary Java Object)簡單無規(guī)則 Java 對象
傳統(tǒng)意義的 Java 對象。就是說在一些 Object/Relation Mapping 工具中,能夠做到維護數(shù)據(jù)庫表記錄的 Persisent Object 完全是一個符合JavaBean 規(guī)范的純 Java 對象,沒有增加別的屬性和方法。我的理解就是最基本的 JavaBean,只有屬性字段及 setter 和 getter 方法!
POJO 是 DO/DTO/BO/VO 的統(tǒng)稱。
DAO(Data Access Object)數(shù)據(jù)訪問對象
是一個 sun 的一個標準 J2EE 設計模式,這個模式中有個接口就是 DAO,它負持久層的操作。為業(yè)務層提供接口。此對象用于訪問數(shù)據(jù)庫。通常和 PO 結(jié)合使用,DAO 中包含了各種數(shù)據(jù)庫的操作方法。通過它的方法,結(jié)合 PO 對數(shù)據(jù)庫進行相關的操作。夾在業(yè)務邏輯與數(shù)據(jù)庫資源中間。配合 VO,提供數(shù)據(jù)庫的 CRUD 操作。
SSM框架
pojo:對應英文Plain Ordinary Java Object,簡單的Java對象,實際就是普通JavaBeans,是為了避免和EJB混淆所創(chuàng)造的簡稱。其中寫普通類屬性。
dao:(持久層)xml中寫數(shù)據(jù)庫操作
service:(業(yè)務層)其中寫各種接口還有實現(xiàn),方法有關操作的可以調(diào)用dao中的方法,或 自己寫其他服務(如 分頁)
controller:(表現(xiàn)層)其中設置請求映射地址,ModelAndView 方法中,將存入的參數(shù)進行處理,可使用service方法,用ModelAndView傳入頁面,對頁面進行操作(增加數(shù)據(jù)、跳轉(zhuǎn)頁面等)
頁面發(fā)送請求給控制器,控制器調(diào)用業(yè)務層處理邏輯,業(yè)務層向持久層發(fā)送請求,持久層與數(shù)據(jù)庫交互,后將結(jié)果返回給業(yè)務層,業(yè)務層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。
部分代碼示例
vo包中
package vo;
public class Student
{
private String id;
private String name;
private String gender;
private float java;
private float english;
private float math;
private float totalScore;
private float average;
}
driver包中:
package driver;
public class Driver
{
//存放目前集合中的學生信息
public static List list=new ArrayList();
public static void main(String args[])
{
int choice=menuChoice();
while(choice!=7){
switch(choice)
{
case 1:importFromExcel();break;
case 2:importFromTxt();break;
case 3:inputFromKeyboard();break;
case 4:queryStudent();break;
case 5:exportToExecel();break;
case 6:exportToTxt();break;
default:System.out.println("無效的選擇");
}
choice=menuChoice();
}
System.out.println("程序成功退出");
System.exit(0);
}
public static int menuChoice()
{
System.out.println("====學生成績管理系統(tǒng)=====");
System.out.println("1. 從excel中加載數(shù)據(jù)");
System.out.println("2. 從文本文件加載數(shù)據(jù)");
System.out.println("3. 鍵盤輸入");
System.out.println("4. 成績查詢");
System.out.println("5. 輸出到excel文件");
System.out.println("6. 輸出到純文本文件");
System.out.println("7. 退出");
System.out.println("請輸入選項:");
Scanner scan=new Scanner(System.in);
int choice=scan.nextInt();
return choice;
}
public static void importFromExcel()
{
/*
* 調(diào)用dao中的方法
*/
StudentDAO dao=new StudentDAO();
String fileName="c:/data/student.xls";
List list1=dao.ReadFromExcel(fileName); //dao中的方法
list.addAll(list1); //將list1集合中的數(shù)據(jù)增加到list集合中
System.out.println("成功從excel中導入"+list1.size()+"個學生");
}
}
dao包中:
package dao;
public class StudentDAO
{
// 實現(xiàn)讀學生文件,將讀出的信息存放于student集合中
public List ReadFromExcel(String fileName)
{
List list = new ArrayList();
File file = new File(fileName);
try
{
InputStream in = new FileInputStream(file);
Workbook wb = Workbook.getWorkbook(in);
Sheet s = wb.getSheet(0);
for(int i = 1; i < s.getRows(); i++) //第一行不要
{
Cell[] row = s.getRow(i);
Student student = new Student(row[0].getContents(), row[1].getContents(), //填充數(shù)據(jù)
row[2].getContents(), Float.parseFloat(row[3].getContents()),
Float.parseFloat(row[4].getContents()), Float.parseFloat(row[5].getContents()));
//由于讀取的數(shù)據(jù)全部都是String 類型所以要轉(zhuǎn)換成Float類型
student.setTotalScore(student.getEnglish()+student.getJava()+student.getMath());
student.setAverage(student.getTotalScore()/3);
list.add(student);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}
總結(jié)
以上是生活随笔為你收集整理的java 包命名_【Java】包的命名规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鲁泰纺织:在行业整合中稳健前行
- 下一篇: Java之父詹姆斯·高斯林 (James