命令行货币转换器应用程序,提示用户输入 来源货币,来源货币代码和目标货币代码,例如
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原则?
我是否应该考虑任何设计模式,如果是,需要哪些不同类型的对象/接口以及它们之间的关系?
答案 0 :(得分:1)
我想到的一些设计方面
阅读CSV文件:创建一个ExchangeRateReader 工厂以便这样做 各种格式的汇率文件可用作输入。
( Objectify )ExchangeRate POJO对象包含代码,名称,国家/地区和费率
具体工厂类生成从CSV读取的ExchangeRate对象 文件
使用Enum for ReaderType:CVS,TEST,EXCEL //工厂依赖 创建适当的实例(具体工厂实例)