如何在Factory Pattern中编写一个通用方法来提供对象?

时间:2017-07-06 17:01:23

标签: java android generics factory-pattern

public class GsonStudentFactory{
....
 public static MasterStudent createMasterStudent(Student student) {
    return gson.fromJson(student.getBody(), MasterStudent.class);
 }

 public static  BTechStudent createBtechStudent(Student student) {
    return gson.fromJson(student.getBody(), BTechStudent.class);
 }
...
}

为了概括我可以使用' if'条件,我可以检查“如果学生的实例是BTechStudent或MasterStudent'并返回适当的BTechStudent或MasterStudent对象。

有没有更好的方法来概括这两种方法?

注意: - BTechStudent和MasterStudent课程扩展了Student class。

先谢谢。

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解正确,但看看这是否对你有所帮助:

public static <T extends Student> T createStudent(Student student) {
    return gson.fromJson(student.getBody(), (Class<T>) student.getClass());
}

并像这样使用它:

MasterStudent masterStudent = createStudent(student);

BTechStudent btech = createStudent(student);