首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在下面的场景中,我可以避免重写一个方法吗?

在下面的场景中,我可以避免重写一个方法吗?
EN

Stack Overflow用户
提问于 2012-05-25 03:56:57
回答 2查看 110关注 0票数 1

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

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

代码语言:javascript
复制
<Rental>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
<Pickup time="13:00"/>
<Date>06/06/12</Date>
</Rental>

VS

代码语言:javascript
复制
<Rental>
<Name>
<First>John</First>
<Last>Doe</Last>
</Name>
<Pickup time="13:00" date="06/06/12"/>
</Rental>

如果每个汽车代理使用不同的接口来处理租赁,那么唯一的方法是覆盖一个方法5次,并且每个新的代理都必须再次增长,还是有更简单的方法来实现这一点?

EN

回答 2

Stack Overflow用户

发布于 2012-05-25 04:06:49

这听起来是使用Decorator Pattern的一个很好的例子。假设您正在进行OOP,您可以有一个为租车提供数据的基本对象,然后用另一个适当格式化数据的对象包装它(或修饰它)。你需要为每一个不同的汽车租赁公司做一个单独的装饰器。

票数 0
EN

Stack Overflow用户

发布于 2012-05-25 04:14:15

如果您为一家新机构所做的唯一一件事就是处理将数据解析为内部数据表示,那么一定要做得很好;)。为什么要为那些看起来非常适合分离的东西而烦恼呢?

我想你可以用很多方法来解决这个问题,如果你真的想的话。我会尝试创建一个人工智能或人工神经网络来匹配输入,使其达到最佳匹配。但任何解决方案都可能比仅仅实现唯一的"parseCustomersData“函数要昂贵得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10744395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档