此刻我们正在做一个大项目
此项目应创建EDIFACT消息。一开始这并不难,但关键是有很多客户都有自己的标准实现
除此之外,我们正在使用几个EDIFACT标准(在我们的例子中是D96A和D01B)
一些客户异常可能小到具有不同的字段长度,但有些客户异常使自己的实现完全不同
目前,我们已经在一个列表中列出了客户异常(只是为了保持一致),在代码中我们使用了如下内容:
if NAME_LENGTH_IS_100 in customer_exceptions:
this.max_length = 100
else:
this.max_length = 70
对于一些简单的例外情况,这可以正常工作,但此时代码开始变得非常混乱,我们正在考虑重构代码
我正在考虑某种工厂模式,但我不确定它的实现。 另一种选择是创建一个基本包,并为每个偏离标准的客户单独实现
我希望有人能给我一些建议
提前谢谢
我认为你的问题太宽泛了,无法得到正确的回答(因为这个原因,我决定单击“关闭”按钮,但决定不这样做)。原因如下:
你提供的代码片段没有错。它应该是某种初始化例程的一部分,这样就可以了。像这样的事情太多也没什么坏处
但如何处理更复杂的案件在很大程度上取决于案件本身
Customer
基类(或者客户甚至可以按层次结构分组,然后一个好的继承树可以反映这一点)李>由于这在很大程度上取决于您的具体用例,我认为这个问题不能比这个更具体地回答
为什么不把所有这些放在一个资源文件中,以标准作为默认值,每个异常句柄都放在一个附加值中,那么您只需要为正确的客户机读取正确的键,代码就保持干净了
相关问题 更多 >
编程相关推荐