1

假设有 5 家汽车租赁公司,当一个人在网上租车时,带有汽车租赁详细信息的 XML 会被发送到租赁公司,在那里它会被一些软件解析并输入到他们的系统中。

现在,如果有一个标准的方式来发送汽车租赁的 XML,那么这很容易,但是让我们假设每个代理都与一个不同的接口来发送汽车租赁,并且每个接口都以不同的格式发送 XML,所以当它需要解析,不能只有一种标准方法,需要能够重写方法来处理多个接口。例如,您可能有以下 2 个:

<Rental>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
<Pickup time="13:00"/>
<Date>06/06/12</Date>
</Rental>

VS

<Rental>
<Name>
<First>John</First>
<Last>Doe</Last>
</Name>
<Pickup time="13:00" date="06/06/12"/>
</Rental>

如果每个汽车代理使用不同的接口来处理租赁,是否唯一的方法是覆盖一个方法 5 次,并且对于每个新代理,它必须再次增长,还是有更简单的方法来解决这个问题?

4

2 回答 2

0

这听起来像是使用装饰器模式的好案例。假设您正在执行 OOP,您可以拥有一个为汽车租赁提供数据的基础对象,然后用另一个正确格式化数据的对象包装(或装饰)它。您需要为各个汽车租赁公司制作单独的装饰器。

于 2012-05-24T20:06:49.003 回答
0

如果您为新机构做的唯一事情是将数据解析为内部数据表示,那么无论如何都做得很好;)。为什么要为看起来非常适合在业务上分开的事情烦恼呢?

我想你可以通过多种方式解决它,但如果你真的想要的话。我会尝试创建一个 ai 或 ann 来匹配输入以实现最佳匹配。但任何解决方案都可能比仅仅实现独特的“parseCustomersData”函数更昂贵。

于 2012-05-24T20:14:14.977 回答