当前位置:K88软件开发文章中心编程语言JavaScriptCoffeeScript → 文章内容

CoffeeScript 工厂方法模式

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-15 15:34:15

由 珍珍阿姨 创建,Carrie 最后一次修改 2016-08-12 工厂方法模式问题直到开始运行你才知道需要的是什么种类的对象。解决方案使用工厂方法(Factory Method)模式和选择对象都是动态生成的。你需要将一个文件加载到编辑器,但是直到用户选择文件时你才知道它的格式。一个类使用工厂方法 ( Factory Method )模式可以根据文件的扩展名提供不同的解析器。class HTMLParser constructor: -> @type = "HTML parser"class MarkdownParser constructor: -> @type = "Markdown parser"class JSONParser constructor: -> @type = "JSON parser"class ParserFactory makeParser: (filename) -> matches = filename.match /\.(\w*)$/ extension = matches[1] switch extension when "html" then new HTMLParser when "htm" then new HTMLParser when "markdown" then new MarkdownParser when "md" then new MarkdownParser when "json" then new JSONParserfactory = new ParserFactoryfactory.makeParser("example.html").type # => "HTML parser"factory.makeParser("example.md").type # => "Markdown parser"factory.makeParser("example.json").type # => "JSON parser"讨论在这个示例中,你可以关注解析的内容,忽略细节文件的格式。更先进的工厂方法,例如,搜索版本控制文件中的数据本身,然后返回一个更精确的解析器(例如,返回一个HTML5解析器而不是HTML v4解析器)。

CoffeeScript 工厂方法模式