Builder pattern 常常也被叫做 adapter,主要目的是提供一種根據情況 return,給 class 或 instance 的簡單方法,通常被拿來解析文件的內容,可以依照以下的方式來建立一個 builder:
Create app/parsers folder
base_parser.rb
file_parser.rb
csv_file_parser.rb
xls_file_parser.rb
Add app > parsers > base_parser.rb
1 2 3 4 5 6
# frozen_string_literal: true classBaseParser definitialize(file_path) @file_path = file_path end end
Add app > parsers > file_parser.rb
1 2 3 4 5 6 7 8 9 10 11
# frozen_string_literal: true classFileParser def self.build(file_path) case File.extname(file_path) when".csv"then CsvFileParser.new(file_path) when".xls"then XlsFileParser.new(file_path) else raise(UnknownFileFormat) end end end