假设有5家汽车租赁公司,当一个人在线进行租赁时,带有汽车租赁详细信息的XML被发送到租赁公司,在那里它将被一些软件解析并输入到他们的系统中。
现在,如果有一种发送租车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次,并且每个新的代理都必须再次增长,还是有更简单的方法来实现这一点?
发布于 2012-05-25 04:06:49
这听起来是使用Decorator Pattern的一个很好的例子。假设您正在进行OOP,您可以有一个为租车提供数据的基本对象,然后用另一个适当格式化数据的对象包装它(或修饰它)。你需要为每一个不同的汽车租赁公司做一个单独的装饰器。
发布于 2012-05-25 04:14:15
如果您为一家新机构所做的唯一一件事就是处理将数据解析为内部数据表示,那么一定要做得很好;)。为什么要为那些看起来非常适合分离的东西而烦恼呢?
我想你可以用很多方法来解决这个问题,如果你真的想的话。我会尝试创建一个人工智能或人工神经网络来匹配输入,使其达到最佳匹配。但任何解决方案都可能比仅仅实现唯一的"parseCustomersData“函数要昂贵得多。
https://stackoverflow.com/questions/10744395
复制相似问题