我有一个给定的网络服务。 (这只是一个例子,真正的一个更复杂,但它有同样的问题。)服务有三个方法,所有三个方法都有一个人作为参数,需要其他东西。 (我无法改变一个或多个实体。)
实体(Person)(它只有一个默认构造函数):
private String name;
private int age;
private Address address;
private List<String> hobbies;
private List<Person> friends;
我需要从我自己的对象中填充对象。我需要写一个&#34;转换器&#34;。它的最佳实践是什么?
我的解决方案:
答案 0 :(得分:1)
我认为你可以通过适当使用装饰模式获得你想要的东西: https://en.wikipedia.org/wiki/Decorator_pattern
答案 1 :(得分:1)
创建仅设置必填字段的构建器听起来不错。
您可以根据自己的需要继承此类,并实现自己的构造函数
public class Target {
// fields
}
public class Purpose1 extends Target {
public Purpose1(String name, int age) {
// set fields or do whatever you wish
}
}
public class Purpose2 extends Target {
public Purpose2(String address, String name, int age) {
// set fields or do whatever you wish
}
}
public class Purpose3 extends Target {
public Purpose3(...) {
// set fields or do whatever you wish
}
}
然后你可以使用需要类Target
的子类实例。