`
xitongyunwei
  • 浏览: 927899 次
文章分类
社区版块
存档分类
最新评论

ruby的单例方法

 
阅读更多
=begin
在Ruby里,可以给具体的实例对象添加实例方法,这个方法只属于这个实例
对象,我们把这样的方法称之为单例方法。
单例方法也叫作单件方法。定义单例方法,首先要生成一个实例对象,其次,
要在方法名前加上对象名和一个点号“.”。
在下面示例中,对象p1不可以laugh , laugh方法只属于p2对象。
实例方法,属于类的每个实例对象。单例方法只出现在单个实例对象中。用单
例方法可以极大地丰富多态性在Ruby中的表现力。
=end
class Person
def talk
puts "Hi! "
end
end
p1=Person.new
p2=Person.new
p1.talk
p2.talk
def p2.talk #定义单例方法p2.talk
puts "Here is p2. "
end
def p2.laugh #定义单例方法p2. laugh
puts "ha,ha,ha... "
end
p1.talk # Hello!
p2.talk # Here is p2.
p2.laugh # ha,ha,ha...
分享到:
评论

相关推荐

    中文版 Ruby 设计模式.pdf

    主要包括Ruby概述、使用模板方法变换算法、使用策略替换算法、通过观察器保持协调、通过迭代器遍历集合、使用命令模式完成任务、使用适配器填补空隙、使用装饰器改善对象、单例、使用工厂模式挑选正确的类、通过生成...

    Ruby设计模式(中文版+英文版).pdf

    主要包括Ruby概述、使用模板方法变换算法、使用策略替换算法、通过观察器保持协调、通过迭代器遍历集合、使用命令模式完成任务、使用适配器填补空隙、使用装饰器改善对象、单例、使用工厂模式挑选正确的类、通过生成...

    非常好的Ruby中文版项目资源,分享出来.zip

    这是 Ruby User’s Guide的简体中文版本:Ruby用户指南。 本指南基于Mark ...单例方法 模块 过程对象 变量 全局变量 实例变量 局部变量 类常量 异常处理:rescue 异常处理:ensure 访问器 对象初始化

    详解Ruby设计模式编程中对单例模式的运用

    这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义。 要点  显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个...

    ruby:Ruby编程语言[mirror]

    先进的面向对象功能(例如,混合,单例方法) 运算符重载 异常处理 迭代器和闭包 垃圾收集 动态加载目标文件(在某些体系结构上) 高度可移植(在许多类Unix / POSIX兼容平台以及Windows,macOS等上运行)。 ...

    Ruby-3.0.0

    Ruby的功能简单语法普通的面向对象功能(例如,类,方法调用) 先进的面向对象功能(例如,混合,单例方法) 运算符重载异常处理迭代器和闭包垃圾收集动态加载目标文件(在某些体系结构上) 高度可移植(在许多类...

    c#源码毕业设计-ruby:Ruby编程语言[镜像]

    先进的面向对象功能(例如,混合,单例方法) 运算符重载 异常处理 迭代器和闭包 垃圾收集 动态加载目标文件(在某些体系结构上) 高度可移植(可在许多类Unix / POSIX兼容平台以及Windows,macOS等上运行)。 如何...

    design-patterns-ruby:Ruby 中的 GOF 设计模式

    - 即将推出(也解释 Ruby 的单例) 结构模式 解释结构模式的含义 在此处添加模式和示例链接 行为模式 解释行为模式的含义 在此处添加模式和示例链接 关于阅读代码和运行测试 该代码有大量文档,并且具有 100% 的...

    RubyUsersGuide-zh:这是Ruby User’s Guide的简体中文版:Ruby用户指南

    目录迭代器面向对象的思考方法类继承重新定义方法访问控制单例方法模块过程对象变量全局变量实例变量局部变量类常量异常处理:rescue异常处理:ensure访问器对象初始化其他关于本指南版权信息贡献者名单Copyright (c...

    Core-Ruby-1:2014 年 10 月开始的 Core Ruby 课程的报告

    单例类。 动态方法定义。 不要作恶:class_eval 和 instance_eval。 常量、实例变量 API。 6 自由修补。 改进。 关键字参数。 在 2.1 中风靡一时。 7 线程或:我如何学会停止担心并学会热爱 GI

    eigenclass:Ruby 中的特征类(元类)

    Ruby 中的特征类又名元类或单例类。 查看其他语言的实现以获取更多示例。 注意:这个 gem 最初是在 2008 年写的。从那时起,Ruby 引入了几个新方法,它们提供与这个 gem 的eigenclass和edefine_method方法相同的...

    super_module:SuperModule允许以与超类相同的方式定义类方法和方法调用,而无需使用def included(base)。 通过提供更轻松的语法,这也继承了ActiveSupport :: Concern

    但是super_module的想法是高度试验性的,并且在很大程度上依赖于元编程,因此,除非您确实需要它,否则在足够的情况下始终喜欢使用纯Ruby模块) 使开发人员即使想要继承单例类方法和调用,也可以继续使用Ruby模块...

    podio-rb:Podio团队使用和维护的Podio API的官方Ruby包装器

    使用Podio库的主要方法是通过单例客户端进行设置,如下所示: Podio . setup ( :api_key => 'YOUR_API_KEY' , :api_secret => 'YOUR_API_SECRET' ) 这将初始化Podio::Client对象,并将其分配给本地线程,该库中的...

    microevent.rb:Ruby 对象的事件(又名具有发布-订阅功能的对象,又名观察者模式)

    MicroEvent.rb 是一个事件发射器库,它为 Ruby 对象提供观察者模式。 它的灵感来自 ,用不到。 设置 添加到您的Gemfile gem 'microevent' 或将复制到您的项目中。 如何使用它 假设您有一个类Klass ,并且您希望...

    nbio:Ruby 的 Node.js 中的非阻塞 IO 事件循环

    后台没有隐式单例(如 EventMachine、Node.js、curl 绑定等) 因此,支持多个同时循环,每个线程一个 受 Node.js 启发的 API 地位 原始草稿 - 此时的游乐场 缺少单元测试和负载测试 短期目标:在阻塞和非阻塞调用...

    lightly:用于轻松执行繁重任务的 Ruby 文件缓存

    轻轻地 - Ruby 文件缓存 Lightly 是用于执行繁重任务的文件缓存。 安装 $ gem install lightly 或者使用捆绑器: gem 'lightly' 用法 Lightly 既可以用作实例,也可以用作静态类。 require 'lightly' # ...

    whirl:用于循环作业的淡化宝石。 预装了 Redis 和 HTTParty。 考虑到 Heroku 的使用情况而构建

    这不再使用 Ruby 的单例模块。 这是因为当从Whirl::Job::Base的子类(在子进程中执行)中调用instance时,父进程无权访问该实例,因为没有共享内存。 使用Whirl::Redis.new代替。 此外,在Whirl::Job::Base子类中,...

    puppet-module-singleton:人偶的单例资源功能

    单身木偶模块 Singleton模块提供的功能可动态创建由内置默认值或由hiera提供的参数定义的资源。 依存关系 此模块取决于Hiera和Puppet 3.2或更高版本。 职能 singleton_packages singleton_packages旨在用作解决木偶...

    pinball:简单的IOCRuby容器和DI工具

    特征存储对象,类(作为工厂),块和单例可以注入对类和实例的依赖用于配置容器的简单DSL 存储的块将在相关类实例中调用您可以在块中描述任何上下文相关的代码用法类注入考虑一个依赖于Repository的Service类。...

Global site tag (gtag.js) - Google Analytics