CoffeeScript 单件模式


当前第2页 返回上一页

隐藏或使私有类在内部运作的想法是更受偏爱的。尤其是由于缺省的CoffeeScript将编译的代码封装在自己的IIFE(闭包)中,你可以定义类而无须担心会被文件外部访问到。在这个实例中,注意,用惯用的模块导出特点来强调模块中可被公共访问的部分。(请看“导出到全局命名空间”中对此理解更深入的讨论)。

root = exports ? this

# Create a private class that we can initialize however
# defined inside the wrapper scope.
class ProtectedClass
  constructor: (@message) ->
  echo: -> @message

class Singleton
  # You can add statements inside the class definition
  # which helps establish private scope (due to closures)
  # instance is defined as null to force correct scope
  instance = null
  # This is a static method used to either retrieve the
  # instance or create a new one.
  @get: (message) ->
    instance ?= new ProtectedClass(message)

# Export Singleton as a module
root.Singleton = Singleton

我们可以注意到coffeescript是如此简单地实现这个设计模式。为了更好地参考和讨论JavaScript的实现,请看初学者必备 JavaScript 设计模式。


标签:CoffeeScript

返回前面的内容

相关阅读 >>

CoffeeScript 计算月球的相位

CoffeeScript 使用 nodeunit 测试

CoffeeScript 克隆对象(深度复制)

CoffeeScript 由数组创建一个对象词典

CoffeeScript 把字符串转换为小写形式

CoffeeScript 查找子字符串

CoffeeScript 检查变量的类型是否为数组

CoffeeScript 检测每个元素

CoffeeScript 列表推导

CoffeeScript 观察者模式

更多相关阅读请进入《CoffeeScript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...