Java货币转换器遵循OO(面向对象)原则

时间:2014-04-09 13:40:54

标签: java oop design-patterns maintainability object-oriented-analysis

命令行货币转换器应用程序,提示用户输入 来源货币,来源货币代码和目标货币代码,例如

C:\workspace> java CurrencyConverter 100.50 EUR GBP

应用程序返回转换为目标货币的源金额的值 例如对于上面的输入,它返回

100.50 EUR = 86.33 GBP

显示转换后的值,程序退出。

可用的汇率(基于GBP)位于逗号分隔值文件中。这个文件的格式是 国家名称,代码,RATE e.g。

United Arab Emirates, Dirhams, AED, 7.2104
Australia, Dollars, AUD, 1.51239
Bosnia and Herzegovina, Convertible Marka, BAM, 2.60565
Bulgaria, Leva, BGN, 2.60948

我有一个java文件可以完成这些工作,但是如何将其转换为精心设计,可扩展和可维护的形式,并遵循良好的OO原则?

我是否应该考虑任何设计模式,如果是,需要哪些不同类型的对象/接口以及它们之间的关系?

1 个答案:

答案 0 :(得分:1)

我想到的一些设计方面

  • 阅读CSV文件:创建一个ExchangeRateReader 工厂以便这样做 各种格式的汇率文件可用作输入。

  • Objectify )ExchangeRate POJO对象包含代码,名称,国家/地区和费率

  • 具体工厂类生成从CSV读取的ExchangeRate对象 文件

  • 使用Enum for ReaderType:CVS,TEST,EXCEL //工厂依赖 创建适当的实例(具体工厂实例