Java Transfer Object Pattern(トランスポートオブジェクトモード)
3470 ワード
トランスポートオブジェクトモード(Transfer Object Pattern)クライアントからサーバに複数の属性を持つデータを一度に渡すために使用されます.トランスポートオブジェクトは数値オブジェクトとも呼ばれます.トランスポートオブジェクトはgetter/setterメソッドを持つ簡単なPOJOクラスです.シーケンス化可能なので、ネットワークを介してトランスポートできます.動作はありません.サーバ側のビジネスクラスは通常、データベースから読みますデータを取得し、POJOに入力してクライアントに送信するか、値で渡します.クライアントの場合、トランスポートオブジェクトは読み取り専用です.クライアントは、独自のトランスポートオブジェクトを作成し、データベース内の数値を一度に更新するためにサーバに渡すことができます.以下に、この設計モードのエンティティを示します.ビジネスオブジェクト(Business Object)-送信オブジェクトにデータを埋め込むビジネスサービス. トランスポートオブジェクト(Transfer Object)-単純なPOJOで、属性を設定/取得する方法のみ. クライアント(Client)-クライアントは、要求を送信するか、またはトラフィックオブジェクトに送信することができる. トランスポートオブジェクトを作成します. ビジネス・オブジェクトを作成します. は、StudentBOを使用してトランスポートオブジェクト設計モードを実証する. 印刷結果
/**
* 1. 。
* @author mazaiting
*/
public class StudentVO {
private String name;
private int rollNo;
public StudentVO(String name, int rollNo) {
this.name = name;
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
}
/**
* 2. 。
* @author mazaiting
*/
public class StudentBO {
//
List students;
public StudentBO() {
students = new ArrayList();
StudentVO student1 = new StudentVO("Robert", 0);
StudentVO student2 = new StudentVO("John", 1);
students.add(student1);
students.add(student2);
}
public void deleteStudent(StudentVO student){
students.remove(student.getRollNo());
System.out.println("Student: Roll No "
+ student.getRollNo() +", deleted from database");
}
public List getAllStudents() {
return students;
}
public StudentVO getStudent(int rollNo){
return students.get(rollNo);
}
public void updateStudent(StudentVO student){
students.get(student.getRollNo()).setName(student.getName());
System.out.println("Student: Roll No "
+ student.getRollNo() +", updated in the database");
}
}
/**
* 3. StudentBO 。
* @author mazaiting
*/
public class Client {
public static void main(String[] args) {
StudentBO studentBusinessObject = new StudentBO();
//
for (StudentVO student : studentBusinessObject.getAllStudents()) {
System.out.println("Student: [RollNo : "
+student.getRollNo()+", Name : "+student.getName()+" ]");
}
//
StudentVO student = studentBusinessObject.getAllStudents().get(0);
student.setName("Michael");
studentBusinessObject.updateStudent(student);
//
studentBusinessObject.getStudent(0);
System.out.println("Student: [RollNo : "
+student.getRollNo()+", Name : "+student.getName()+" ]");
}
}
Student: [RollNo : 0, Name : Robert ]
Student: [RollNo : 1, Name : John ]
Student: Roll No 0, updated in the database
Student: [RollNo : 0, Name : Michael ]