传输对象模式包含以下主要组件:
1. 传输对象(Transfer Object): 包含多个属性的简单 Java 类,用于在客户端和服务器端传输数据。通常具有公共的 getter 和 setter 方法。
2. 业务对象(Business Object): 包含业务逻辑和操作数据的对象。业务对象通常使用传输对象来进行数据传输。
3. 客户端(Client): 负责创建和使用传输对象,并与服务器进行通信。
下面是一个简单的传输对象模式的示例:
// 传输对象
class StudentTO {
private String name;
private int rollNumber;
public StudentTO(String name, int rollNumber) {
this.name = name;
this.rollNumber = rollNumber;
}
// 省略 getter 和 setter 方法
}
// 业务对象
class StudentBO {
// 假设这里使用一个集合来模拟数据库存储
private List<StudentTO> students;
public StudentBO() {
students = new ArrayList<>();
students.add(new StudentTO("John", 1));
students.add(new StudentTO("Jane", 2));
}
public List<StudentTO> getAllStudents() {
return students;
}
public StudentTO getStudent(int rollNumber) {
return students.stream()
.filter(s -> s.getRollNumber() == rollNumber)
.findFirst()
.orElse(null);
}
public void updateStudent(StudentTO student) {
StudentTO existingStudent = getStudent(student.getRollNumber());
if (existingStudent != null) {
existingStudent.setName(student.getName());
}
}
}
// 客户端
public class Main {
public static void main(String[] args) {
StudentBO studentBO = new StudentBO();
// 获取所有学生信息
List<StudentTO> students = studentBO.getAllStudents();
System.out.println("All Students: " + students);
// 获取特定学生信息
StudentTO student = studentBO.getStudent(1);
System.out.println("Student: " + student);
// 更新学生信息
studentBO.updateStudent(new StudentTO("Updated John", 1));
System.out.println("Updated Student: " + studentBO.getStudent(1));
}
}
在这个示例中,StudentTO 是传输对象,用于封装学生的基本信息。StudentBO 是业务对象,包含了对学生信息的操作。客户端通过调用 StudentBO 的方法来获取和操作学生数据,而不必直接与 StudentTO 交互。传输对象模式使得数据的传输和操作更加清晰,同时提高了系统的可维护性。
转载请注明出处:http://www.zyzy.cn/article/detail/11870/设计模式