Builder pattern 常常也被叫做 adapter
,主要目的是提供一种根据情况 return,给 class 或 instance 的简单方法,通常被拿来解析文件的内容,可以依照以下的方式来建立一个 builder:
app/parsers
folderapp > parsers > base_parser.rb
# frozen_string_literal: true
class BaseParser
def initialize(file_path)
@file_path = file_path
end
end
app > parsers > file_parser.rb
# frozen_string_literal: true
class FileParser
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
注: extname - https://apidock.com/ruby/File/extname/class
app > parsers > csv_file_parser.rb
class CsvFileParser < BaseParser
def rows
# parse rows
end
end
app > parsers > xls_file_parser.rb
class XlsFileParser < BaseParser
def rows
# parse rows
end
end
再来,只需要 build 後,就可以取得 parser 底下的 rows,再根据要取得的资料做对应的 code 即可。
parser = FileParser.build(file_path)
rows = parser.rows
>>: 30天打造品牌特色电商网站 Day.23 关於position定位
本篇大纲:Domain & Range 输入域与输出域、Interpolate 插补值、c...
不知道要打什麽,直接开始 题号:739 标题:Daily Temperatures 难度:Mediu...
很快地今天进入基础观念最後一个小章节(感动流泪啊XD),将带大家说明流程控制、回圈和函数的基本概念!...
夜阑人静小可怕 别怕!你有铁人赛,写吧! 心得 tags: 铁人赛 Templates 嗨,大家安...
就IDS的准确性而言,观察到的每个活动都有四种可能的状态。 . 一个真正的积极状态(true pos...