假设有5家汽车租赁公司,当一个人在网上租车时,带有租车详情的XML会被发送到租赁代理商,在那里它将被某些软件解析并输入到他们的系统中。 / p>
现在,如果有一种标准的方式来为汽车租赁发送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次的方法,并且对于每个新的代理商,它必须再次增长,还是有更简单的方法呢?
答案 0 :(得分:0)
这听起来像是使用Decorator Pattern的好例子。假设你正在做OOP,你可以有一个基础对象,为汽车租赁提供数据,然后用另一个正确格式化数据的对象包装(或装饰它)。你需要为各个汽车租赁公司制作一个单独的装饰。
答案 1 :(得分:0)
如果您要为新机构做的唯一事情就是将数据解析为内部数据表示,那么一切都很完美;)。为什么要打扰一些看似非常适合商业明智的东西呢?
我想如果你真的想要,你可以通过多种方式解决它。我会想到创建一个ai或ann来匹配输入以达到最佳匹配。但任何解决方案都可能比实现独特的“parseCustomersData”功能更加昂贵。