我想重構一些讀取csv文件的代碼。文件每一行中的第一個字符表示記錄類型:H
=標題,I
=信息,D
=數據。每種記錄類型都有固定的不同數量的字段。我的程序使用FasterCSV從文件中讀取一行,然後使用case語句確定如何處理該行。重構代碼,導入一個csv文件有標題
record_type = new_record[:record_type]
case record_type
when "H"
factory_build_H_record(new_record)
when "I"
factory_build_I_record(new_record)
when "D"
factory_build_e_record(new_record)
end
對於重構,我試圖按照在面向對象編程中使用case語句Sandi Metz' blog post和消除case語句。我的傾向是我需要創建一些代表三種記錄類型的類,然後定義一些方法,如process_record
。我不知道我應該如何去創建類。任何幫助,將不勝感激。
我不喜歡修補核心類的猴子,除非有真正的好理由。 – pguardiario