[案例研討] 烏龜訂購系統開發與實作 by UML and Java-08

八、新增 Java Model 專案,撰寫控制類別程式碼

 

1. 新增 Java Model 專案:
    (1) 將 Eclipse 切至「Java Perspective」。
    (2) 新增「Java Project」專案,專案名稱為「烏龜Model」。

圖 12、在 Eclipse 下新增 Java 專案
(點擊圖片鏈接看原圖)圖 12、在 Eclipse 下新增 Java 專案

2. 撰寫控制 (control)類別與資料傳遞 (data transfer)類別的程式碼框架 (skeleton)

訂購烏龜_Control.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.order.control;
 
import java.util.*;
import com.order.dto.*;
 
public class 訂購烏龜_Control {
	public ArrayList<vo_ 烏龜資訊> list烏龜清單() {
		return null;
	}
 
	public VO_訂購確認資訊 結帳(VO_結帳資訊 m_結帳) {
		return null;
	}
 
	public boolean SaveOrder() {
		return false;
	}
}
</vo_>


VO_烏龜資訊.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.order.dto;
 
public class VO_烏龜資訊 {
	public String getId() {
		return id;	}
	public void setId(String id) {
		this.id = id;	}
	public String getName() {
		return name;	}
	public void setName(String name) {
		this.name = name;	}
	public int getPrice() {
		return price;	}
	public void setPrice(int price) {
		this.price = price;	}
	private String id;
	private String name;
	private int price;
}

VO_結帳資訊.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.order.dto;
 
public class VO_結帳資訊 {
	public String getId() {
		return id;	}
	public void setId(String id) {
		this.id = id;	}
	public int get數量() {
		return 數量;	}
	public void set數量(int 數量) {
		this.數量 = 數量;	}
	private String id;
	private int 數量;
}

VO_訂購確認資訊.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.order.dto;
 
public class VO_訂購確認資訊 {
	public VO_烏龜資訊 getV烏龜() {
		return v烏龜;
	}
	public void setV烏龜(VO_烏龜資訊 v烏龜) {
		this.v烏龜 = v烏龜;
	}
	public int get總價() {
		return 總價;
	}
	public void set總價(int 總價) {
		this.總價 = 總價;
	}
	private VO_烏龜資訊 v烏龜;
	private int 總價;
}
筆記重點
  • 控制類別的類別與方法 (class and method)名稱均是源自於上圖 4 於 EA 中所設計的 UML 控制類別。
  • 訂購烏龜_Control.java 所宣告的三個公用方法 (public method)即是反映「訂購烏龜」使用案例內的動作步驟,參與者 (未來透過 JSP 實作)與系統 (本控制類別)之間的互動共有三次。
  • 目前僅定義程式碼的框架 (skeleton),故私有方法 (private method)省略,且回傳值僅回傳空值 (null)即可 (事實上,這可以視團隊開發節奏與寫碼熟悉度而加深細節)。
  • 控制性的類別被歸類於「com.order.control」;而資料傳遞 (data transfer)類別則被歸類於「com.order.dto」。
  • 以目前 Java 世界的主流,仍以資料物件 (data object)作為物件之間互動的參數傳遞與回傳值型態。相較於 .NET 作法,則以 DataSet (本質為 XML)為參數與回傳值的資料傳遞。
  • 命名為 VO_ 開頭的物件 (如 VO_結帳資訊.java)即為資料物件。這類物件僅單純只有 「getter、setter」的取值方法,所以也被稱為「值物件 (value object)」。這些資料型物件就被歸類置於「com.order.dto」套件 (package)內。
  • 切記! VO 物件不等同於企業物件 (business object)-著重在企業邏輯的運算,或資料庫內的表格 (從邏輯分析而言應稱為 Entity,實體)-著重在領域概念 (domain concept)的資料結構。它僅是做為方便物件之間 (尤為在不同 tier 的傳遞,如 JSP → Control Object。)傳遞的參數與回傳值而已。
  • 一般 VO 物件的設計規劃,並不需要特別嚴謹 (甚至是抱著快速且隨便的態度)。以本例而言,所設計的三種 VO 物件 (VO_烏龜資訊, VO_結帳資訊, VO_確認訂購資訊),僅是在滿足表單與控制類別之間的資料傳遞而已。
  • 至於資料庫的表格設計,一般稱之為 E-R (Entity-Relationship)設計,因會考量到共用性需求,所以會嚴謹許多。在未來的系統設計整合階段,VO 物件需經過轉換程序,透過 O-R Mapping 機制 (如 Hibernate),寫入至資料庫 (反之亦然)。

文章導覽

   

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *