c# - 格式化文件的好方法

标签 c# design-patterns file-format

在我的工作中,我需要格式化付款文件以便能够与银行进行通信。问题是所有银行都要求不同的格式。现在,我们使用模板方法模式 [GOF] 尝试尽可能以泛型的方式做到这一点,但结果是每种格式都会重复相同的 3 个类。

继承自 asbtract absPaymentFile 的类(具有控制反转) 继承自 Payment 的类(包含有关付款的信息,有时具有 1 或 2 个与其他付款类不同的属性) 一个继承自absMerchant的类(包含有关商家的信息和一些要实现的方法)

有没有一种方法可以用“几乎”相同的信息来格式化文件,并且在某些方面比我们现在所做的更好?

此链接应该为您提供我需要做的事情的良好基线:https://www.vancity.com/lang/fr/SharedContent/documents/CPA_Std005_Specs.doc

这是一个.doc!

谢谢!

最佳答案

在尝试制作一些只需要进行细微调整即可支持多种格式的东西的道路上,我想说不要这样做。 DRY 原则在这里并不适用,因为每种新格式确实独立于其他格式,并且可能会发生变化。

是的,这可能意味着复制/粘贴相当数量的代码,但老实说,一旦完成一种格式,那么在接收软件更新其规范之前,您不必担心它。另外,如果该格式发生更改,您通常不希望这些更改影响您的其他输出代码。

简而言之,这是应该只封装到具有某种类型的插件架构的领域之一。这意味着,所有类都应该实现一个基本接口(interface),该接口(interface)简单地定义主应用程序将如何向其传输数据。之后,这些类应该能够彼此显着不同,并且其中一个类的更新应该不会对其他类产生影响。

关于c# - 格式化文件的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5356759/

相关文章:

c# - 表未映射到 Entity Framework 数据模型

java - 使用 "Adapter"模式

matlab - 分析Wav文件格式

emulation - GameBoy Color ROM 的布局和结构引用?

C# 导入 Adob​​e Illustrator (.AI) 文件渲染到位图?

c# - 如何将变量传递给 C# 中的事件?

c# - 是否可以使用 String.Split 或正则表达式将字符串拆分为字符串数组并删除不在分隔符之间的部分?

c# - 无法转换对象类型 "System.Web.Mvc.HtmlHelper` 1 [System.Object] "to type"System.Web.Mvc.HtmlHelper "

PHP:我是否将事件驱动编程与信号感知接口(interface)(信号和插槽/观察者模式)混为一谈?

javascript - 用于获取执行上下文的 Node.js 编程模式