Java 读写器/处理器中使用的类型的最佳实践?

Java 读写器/处理器中使用的类型的最佳实践?,java,spring-batch,Java,Spring Batch,我和一位同事正在讨论SpringBatch的作者是否打算在Reader/writer/Processor中使用具体类型,或者 spring批处理读取器/写入器/处理器的方法签名为: public interface ItemReader<T> public interface ItemWriter<T> public interface ItemProcessor<I, O> 公共接口ItemReader 公共接口项目编写器 公共接口项目处理器 是否打算主

我和一位同事正在讨论SpringBatch的作者是否打算在Reader/writer/Processor中使用具体类型,或者

spring批处理读取器/写入器/处理器的方法签名为:

public interface ItemReader<T>
public interface ItemWriter<T>
public interface ItemProcessor<I, O>
公共接口ItemReader
公共接口项目编写器
公共接口项目处理器
是否打算主要以“强类型”方式使用读卡器/写卡器/处理器,例如:

public class Person {
    String name;
    String address;
    String age;
}

public class PersonReader implements ItemReader<Person> { ... }
public class Person {
    String name;
    String address;
    String age;
}

public class Animal {
    String type;
    String color;
}

public class Book {
    String title;
    String pages;
    String author;
}

public class UpdateObject {
    Person person;
    Animal animal;
    Book book;
}

public class UpdateObjectReader implements ItemReader<UpdateObject>  { ... }
公共类人物{
字符串名;
字符串地址;
弦年龄;
}
公共类PersonReader实现ItemReader{…}
还是更倾向于处理装满各种类型的桶,例如:

public class Person {
    String name;
    String address;
    String age;
}

public class PersonReader implements ItemReader<Person> { ... }
public class Person {
    String name;
    String address;
    String age;
}

public class Animal {
    String type;
    String color;
}

public class Book {
    String title;
    String pages;
    String author;
}

public class UpdateObject {
    Person person;
    Animal animal;
    Book book;
}

public class UpdateObjectReader implements ItemReader<UpdateObject>  { ... }
公共类人物{
字符串名;
字符串地址;
弦年龄;
}
公营动物{
字符串类型;
字符串颜色;
}
公共课堂用书{
字符串标题;
字符串页;
字符串作者;
}
公共类更新对象{
个人;
动物;
书籍;
}
公共类UpdateObjectReader实现ItemReader{…}

“方法签名”是
公共接口ItemReader
。。。方法签名?老实说,我不认为作者关心你如何使用这些接口。这取决于您和您的代码风格。由于这两种情况之间没有真正的区别,因为它们只是具有任意数量的任意类型字段的类,这并不重要。
UpdateObject
(包含
Person
Animal
Book
字段)和
Person
之间的概念区别是什么(包含
String
String
String
字段)?第一个字段可能更具可伸缩性,因为第二个字段由
Person
Animal
Book
组成。您不确定是否希望同时处理三个不同的类,因为它们之间没有明显的关系。“方法签名"是
公共接口ItemReader
…方法签名吗?老实说,我认为作者并不关心您如何使用这些接口。这取决于您和您的代码风格。而且,由于这两种情况之间没有真正的区别,因为它们只是具有任意类型的任意数量字段的类,这并不重要。
UpdateObject
(包含
Person
Animal
Book
字段)和
Person
(包含
String
String
字段)在概念上有什么区别?第一个类可能更具可扩展性,因为第二个类由
动物
组成。不确定您是否希望同时处理三个不同的类,因为它们之间没有明显的关系。