mod objek pemindahan


Pola Objek Pemindahan digunakan untuk memindahkan data dengan berbilang atribut daripada klien ke pelayan pada satu masa. Objek pemindahan juga dipanggil objek berangka. Objek pemindahan ialah kelas POJO mudah dengan kaedah getter/setter, dan ia boleh bersiri supaya ia boleh dipindahkan melalui rangkaian. Ia tidak mempunyai tingkah laku. Kelas perniagaan sebelah pelayan biasanya membaca data daripada pangkalan data, mengisi POJO dan menghantarnya kepada pelanggan atau menyampaikannya mengikut nilai. Kepada pelanggan, objek pengangkutan adalah baca sahaja. Pelanggan boleh mencipta objek pemindahannya sendiri dan menyerahkannya kepada pelayan untuk mengemas kini nilai dalam pangkalan data dalam satu masa. Berikut ialah entiti bagi corak reka bentuk ini.

  • Objek Perniagaan (Objek Perniagaan) - Perkhidmatan perniagaan yang mengisi data untuk objek pemindahan.

  • Objek Pemindahan - POJO mudah dengan hanya kaedah untuk menetapkan/mendapatkan sifat.

  • Pelanggan - Pelanggan boleh menghantar permintaan atau memindahkan objek ke objek perniagaan.

Pelaksanaan

Kami akan mencipta StudentBO sebagai objek perniagaan dan StudentVO sebagai objek pemindahan, kedua-duanya yang mewakili entiti kami.

TransferObjectPatternDemo, kelas demo kami berada di sini sebagai pelanggan dan akan menggunakan StudentBO dan Student untuk menunjukkan corak reka bentuk objek pemindahan.

transferobject_pattern_uml_diagram.jpg

Langkah 1

Buat objek pemindahan.

StudentVO.java

public class StudentVO {
   private String name;
   private int rollNo;

   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;
   }
}

Langkah 2

Buat objek perniagaan.

StudentBO.java

import java.util.ArrayList;
import java.util.List;

public class StudentBO {
	
   //列表是当作一个数据库
   List<StudentVO> students;

   public StudentBO(){
      students = new ArrayList<StudentVO>();
      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<StudentVO> 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");
   }
}

Langkah 3

Gunakan StudentBO untuk menunjukkan corak reka bentuk Objek Pemindahan.

TransferObjectPatternDemo.java

public class TransferObjectPatternDemo {
   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()+" ]");
   }
}

Langkah 4

Sahkan output.

Student: [RollNo : 0, Name : Robert ]
Student: [RollNo : 1, Name : John ]
Student: Roll No 0, updated in the database
Student: [RollNo : 0, Name : Michael ]