想象一下这种情况: 第三方系统提供的具有多个与电话号码相关的属性的客户对象。
public class Customer {
private String phoneAreaCode;
private String phoneNumber;
}
另一个第三方系统,该第三方系统接收其自己的Customer对象,该对象内部具有Phone对象。
public class XCustomer {
private Phone phone;
}
我想知道是否存在一种将客户转换为XCustomer的OO设计模式。客户之一应该知道另一个客户对象,然后将电话属性转换为电话对象吗?是否应该创建实用程序类以将它们转换为另一种?还是有更好的解决方案?
答案 0 :(得分:1)
由于Customer和CustomerX类均来自第三方,因此您无法修改Customer和CustomerX类。
我更喜欢一个简单的实用程序来进行转换。
您可以创建Converter接口/实现。这将在DI环境中很有用,或者您希望有多种实现方式
public interface CustomerConverter {
CustomerX convert(Customer customer);
}
public class CustomerConverterImpl implements CustomerConverter {
@Override
public CustomerX convert(Customer customer) {
// TODO convert
}
}