如何使用设计模式将对象转换为具有相同属性的另一个对象?

我在 Java 中有两个 POJO:Movie在我的数据库Movie中使用,另一个用于从请求到网络服务的类似结果。


package .service

public class Movie{

 @Serialized("Title")

 private String title;

 @Serialized("Year")

 private String year;

 @Serialized("Poster")

 private String poster

}


package .database

public class Movie{

  @ColumnInfo(name = "title")

  private String title;

  @ColumnInfo(name = "year")

  private String year;

  @ColumnInfo(name = "poster")

  private String poster;

}

我通过创建一个执行转换的类解决了这个问题:


 public class MovieObjectAdapter {

    public static List<service.Movie> castFrom(List<database.Movie>moviesDatabase){

        List<service.Movie> moviesModel = new ArrayList<>();

        for (database.Movie movie:

             moviesDatabase) {

            service.Movie movieModel = new service.Movie();

            movieModel.setTitle(movie.getTitle());

            movieModel.setPoster(movie.getPoster());

            movieModel.setYear(movie.getYear());

            moviesModel.add(movieModel);

        }

        return moviesModel;

    }

}

但我对此不太满意。那么您可以推荐我使用哪种设计模式?


编辑:


哦,对不起,我忘记了一点细节,我的服务有另一个属性名称,我的数据库,这就是我有两个 pojo 的原因。很抱歉省略了这一点。


拉莫斯之舞
浏览 146回答 3
3回答

慕运维8079593

来自服务包的电影和来自数据库包的电影具有相同的属性。您应该考虑为常见对象提供一个包。例如,在服务或数据库中任何需要的地方使用应用程序主包中的电影更容易和清晰。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java