Обзор

Основное использование шаблона объекта передачи - передача данных с несколькими атрибутами одновременно. Он состоит из 3 частей:

  • Объект передачи - простой простой старый объект Java (POJO), у которого есть только геттеры и сеттеры.
  • Бизнес-объект - содержит логику, управляющую перемещаемым объектом.
  • Клиент - передает или получает объект передачи от бизнес-объекта.

Выполнение

Перенести объект

PersonTO.java

public class PersonTO {
   private String name;
   private int id;

   PersonTO(String name, int id){
      this.name = name; 
      this.id = id
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
   public String getId() {
      return id;
   }

   public void setId(String id) {
      this.id = id;
   }
}

Бизнес-объект

PersonBO.java

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

public class PersonBO {
   // database
   List<PersonTO> people;

   public PersonBO(){
      people = new ArrayList<PersonTO>();
      PersonTO p1 = new PersonTO("Gary", 0);
      PersonTO p2 = new PersonTO("Sam", 1);
      people.add(p1);
      people.add(p2);		
   }
   public void deletePerson(PersonTO person) {
      people.remove(person.getId());
      System.out.println(person.getId() + ". " + person.getName() + " deleted");
   }

   public List<PersonTO> getAllPeople() {
      return people;
   }

   public PersonTO getPerson(int id) {
      return people.get(id);
   }

   public void updatePerson(PersonTO person) {
      people.get(person.getId()).setName(person.getName());
      System.out.println("Id " + person.getId() + " updated");
   }
}

Клиент

Demo.java

public class Demo {
   public static void main(String[] args) {
      PersonBO personBusinessObject = new PersonBO();
// Print all people
      for (PersonTO person : personBusinessObject.getAllPeople()) {
         System.out.println("Id : " + person.getId() + ", Name : " + person.getName());
      }

      // Update person
      PersonTO person = personBusinessObject.getAllPeople().get(0);
      person.setName("Jim");
      personBusinessObject.updatePerson(person);

      // Get person
      person = personBusinessObject.getPerson(0);
      System.out.println("Id : " + person.getId() + ", Name : " + person.getName());
   }
}
>> Id: 0, Name: Gary
>> Id: 1, Name: Same
>> Id 0 updated
>> Id: 0, Name: Jim

Вывод

Используя шаблон передачи данных, вы можете сгруппировать несколько вызовов вместе. В приведенном выше примере он извлекает, обновляет и удаляет. Однако это не ограничивается только этими действиями. Этот шаблон следует использовать, если клиент запрашивает множественную информацию, и они связаны между собой, увеличивают производительность для извлечения ресурсов и вы хотите уменьшить количество вызовов.