Tasarım Deseni - Transfer Nesnesi Kalıbı
Aktarım Nesnesi kalıbı, istemciden sunucuya tek seferde birden çok öznitelik içeren verileri iletmek istediğimizde kullanılır. Transfer nesnesi aynı zamanda Değer Nesnesi olarak da bilinir. Transfer Object, alıcı / ayarlayıcı yöntemlerine sahip basit bir POJO sınıfıdır ve ağ üzerinden aktarılabilmesi için serileştirilebilir. Herhangi bir davranışı yoktur. Sunucu Tarafı iş sınıfı normalde veritabanından verileri alır ve POJO'yu doldurur ve istemciye gönderir veya değerine göre iletir. İstemci için aktarım nesnesi salt okunurdur. Müşteri, kendi transfer nesnesini oluşturabilir ve veri tabanındaki değerleri tek seferde güncellemek için sunucuya iletebilir. Bu tür tasarım modelinin varlıkları aşağıdadır.
Business Object - İşletme Hizmeti, Aktarım Nesnesini verilerle doldurur.
Transfer Object - Sadece öznitelikleri ayarlama / alma yöntemlerine sahip basit POJO.
Client - Müşteri, Transfer Nesnesini İş Nesnesine ister veya gönderir.
Uygulama
Varlıklarımızı temsil eden İş Nesnesi olarak StudentBO , Transfer Nesnesi olarak Öğrenci oluşturacağız .
Demo sınıfımız TransferObjectPatternDemo , burada bir müşteri olarak hareket ediyor ve Transfer Nesnesi Tasarım Modelini göstermek için StudentBO ve Student'ı kullanacak.
Aşama 1
Transfer Nesnesi Oluşturun.
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;
}
}
Adım 2
İş Nesnesi Oluşturun.
StudentBO.java
import java.util.ArrayList;
import java.util.List;
public class StudentBO {
//list is working as a database
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");
}
//retrive list of students from the 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");
}
}
Aşama 3
Transfer Nesnesi Tasarım Modelini göstermek için StudentBO kullanın .
TransferObjectPatternDemo.java
public class TransferObjectPatternDemo {
public static void main(String[] args) {
StudentBO studentBusinessObject = new StudentBO();
//print all students
for (StudentVO student : studentBusinessObject.getAllStudents()) {
System.out.println("Student: [RollNo : " + student.getRollNo() + ", Name : " + student.getName() + " ]");
}
//update student
StudentVO student = studentBusinessObject.getAllStudents().get(0);
student.setName("Michael");
studentBusinessObject.updateStudent(student);
//get the student
student = studentBusinessObject.getStudent(0);
System.out.println("Student: [RollNo : " + student.getRollNo() + ", Name : " + student.getName() + " ]");
}
}
4. adım
Çıkışı doğrulayın.
Student: [RollNo : 0, Name : Robert ]
Student: [RollNo : 1, Name : John ]
Student: Roll No 0, updated in the database
Student: [RollNo : 0, Name : Michael ]