当第三方系统存在限制时,要使用哪种OO设计?

问题描述 投票:-1回答:1

想象一下这种情况:由第三方系统提供的Customer对象,它具有与电话号码相关的多个属性。

public class Customer {

    private String phoneAreaCode;
    private String phoneNumber;

}

另一个第三方系统,它接收自己的Customer对象,里面有一个Phone对象。

public class XCustomer {

    private Phone phone;

}

我想知道是否有OO设计模式将Customer转换为XCustomer。如果其中一个客户知道另一个Customer对象并将手机属性转换为Phone对象吗?我应该创建实用程序类来将其转换为另一个吗?还是有更好的解决方案?

oop design-patterns
1个回答
1
投票
  1. 由于Customer和CustomerX类都来自第三方,因此您无法修改Customer和CustomerX类。
  2. 我更喜欢一个简单的实用程序来进行转换。
  3. 您可以创建Converter接口/实现。这在DI环境中很有用,或者您希望有多个实现 public interface CustomerConverter { CustomerX convert(Customer customer); } public class CustomerConverterImpl implements CustomerConverter { @Override public CustomerX convert(Customer customer) { // TODO convert } }
© www.soinside.com 2019 - 2024. All rights reserved.