`
凌川__
  • 浏览: 84023 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

6.4 单例方法

阅读更多
同一份设计蓝图(类),不同的实例对象,可以表现出不同的行为特征,这种(不牵涉继承的)多态性在Java 这样的静态语言里,通过方法重载得到具体实现。6.1节中我们分析知道了Ruby中的重载是指重写,Ruby 如何来反映不同实例对象的不同行为特征呢?
在Ruby里,可以给具体的实例对象添加实例方法,这个方法只属于这个实例对象,我们把这样的方法称之为单例方法。
看程序  E6.4-1.rb :
ruby 代码
  1. #E6.4-1.rb     
  2. class Person     
  3.   def talk   
  4.     puts "Hi! "      
  5.   end     
  6. end  
  7.   
  8. p1=Person.new  
  9. p2=Person.new  
  10.   
  11.   def  p2.talk        #定义单例方法p2.talk   
  12.     puts "Here is p2. "      
  13.   end       
  14.   
  15. def p2.laugh          #定义单例方法p2. laugh   
  16.     puts "ha,ha,ha... "      
  17.   end     
  18.   
  19. p1.talk      # =>  Hello!   
  20. p2.talk      # =>  Here is p2.   
  21. p2.laugh     # =>  ha,ha,ha...  

 单例方法也叫作单件方法。定义单例方法,首先要生成一个实例对象,其次,要在方法名前加上对象名和一个点号“.”。
程序 E6.4-1.rb 中,对象p1不可以laugh ,  laugh方法只属于p2对象。
实例方法,属于类的每个实例对象。单例方法只出现在单个实例对象中。用单例方法可以极大地丰富多态性在 Ruby中的表现力。

完整阅读,请看我写的 Ruby语言中文教程all in one    
 

分享到:
评论

相关推荐

    小D深入浅出设计模式+框架源码剖析实战

    ├─第一章 旭瑶-小滴架构师成长系列软件设计模式课程介绍 │ 1.2设计模式全家桶课程大纲速览.mp4 │  ├─第二章 想成为架构师的你,不可不知道的设计模式精髓 │ 2.1设计模式的六大原则你知道多少.mp4 ...│ 6.4

    Java学习笔记和例子

    6.4 线程优先级 Java中的线程可以设置优先级,通过setPriority()方法来设置线程的优先级。线程优先级的主要特点是可以控制线程的执行优先级,例如可以将高优先级的线程设置为高优先级,以确保其执行的及时性。 6.5...

    OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码

    抽象工厂5.1 把抽象工厂应用到TouchPainter应用程序5.2 在Cocoa Touch框架中使用抽象工厂5.3 总结第6章 生成器6.1 何为生成器模式6.2 何时使用生成器模式6.3 构建追逐游戏中的角色6.4 总结第7章 单例7.1 何为单例...

    java——1.rar_Java实习报告_java实习_java实习记录

    10. **设计模式**:实习生可能会接触到一些常见的设计模式,如单例、工厂、观察者模式等,它们是解决特定问题的成熟解决方案。 11. **单元测试**:通过JUnit进行单元测试,确保代码的质量和功能的正确性,学习断言...

    快学 scala 中文版 带完整目录

    6.4 apply方法 84 6.5 应用程序对象 85 6.6 枚举 86 练习 87 第7章 包和引入 A1 91 7.1 包 91 7.2 作用域规则 93 7.3 串联式包语句 95 7.4 文件顶部标记法 95 7.5 包对象 96 7.6 包可见性 97 7.7 引入 97...

    《设计模式实训教程》【PPT+类图与代码+样章】

    6.4实训练习 附录A参考答案 A.1第1章实训练习参考答案 A.2第2章实训练习参考答案 A.3第3章实训练习参考答案 A.4第4章实训练习参考答案 A.5第5章实训练习参考答案 A.6第6章实训练习参考答案 参考文献

    软件设计模式与体系结构(讲解+代码)

     【例2.6】单例模式-互联网连接  【例3.2】组合模式-五子棋代码  【例3.3】组合模式-空军指挥系统  【例3.4】组合模式-世界问候语  【例3.7】类适配器模式-客户信息验证  【例3.8】对象适配器模式-字符...

    Addison Wesley - Design Patterns

    - 创建型模式主要用于对象的创建过程,包括抽象工厂、构建者、工厂方法、原型和单例等五种模式。 - **3.2 抽象工厂** - 介绍了一种可以创建一系列相关或相互依赖的对象而无需指定它们具体的类的方式。 - **3.3 ...

    Java-Design-Patterns.pdf

    6.4 提供源代码实例,加深理解。 7. 观察者设计模式 7.1 观察者模式的定义和概念。 7.2 什么是观察者模式,以及该模式的组成。 7.3 实现观察者模式,包括Java内置的观察者模式应用。 7.4 何时使用观察者模式,...

    JavaScript高级程序设计(第四版)中文版.pdf文件 下载就能看,还有很多书的电子版,上传的没上传的,可以找我要

    第 1章 什么是JavaScript 1 1.1 简短的历史回顾 1 1.2 JavaScript实现 2 1.3 JavaScript版本 9 1.4 小结 10 ...2.1 script元素 11 2.2 行内代码与外部文件 18 2.3 文档模式 18 2.4 noscript元素 19 ...6.4 M

    设计模式之禅(第2版)

    - **6.4 如何使用开闭原则** 提供在设计系统时遵循开闭原则的具体步骤。 - **6.5 最佳实践** 分享在实际项目中成功应用开闭原则的经验教训。 #### 第二部分 真刀实枪——23种设计模式完美演绎 接下来的部分将...

    Ruby程序设计.doc

    - **Singleton:** 用于创建单例对象。 **8.4 Require, load和include** - **require/load:** 用于加载外部的Ruby文件。 - **include:** 用于将一个模块混合到当前类中。 #### 九、异常 **9.1 异常处理** ...

    最好的C#入门教程,让你轻松入门

    5. **单例模式**(6.4): - 单例模式确保一个类只有一个实例,并提供一个全局访问点。这在需要全局共享资源或控制实例数量时非常有用。 - 例如,数据库连接池、线程池等场景就常使用单例模式。 6. **生成器模式*...

    java设计模式

    6.4 如何使用开闭原则 6.5 最佳实践 第二部分 我惹了谁——真刀实枪篇 第7章 单例模式 7.1 我是皇帝我独苗 7.2 单例模式的定义 7.3 单例模式的应用 7.4 单例模式的扩展 7.5 最佳实践 第8章 工厂方法模式 8.1 女娲造...

    Java开发规范(编程风格)

    **6.4 构造函数和静态工厂方法** - 提供构造函数来初始化对象状态。 - 静态工厂方法可以提供更灵活的对象创建方式。 **6.5 TOSTRING(), EQUALS(), HASHCODE()** - 重写toString()方法,提供对象的状态信息。 - ...

    Java多线程和并发知识整理

    final与单例模式、线程安全初始化等。 **6. JUC (Java并发工具包)** 6.1 汇总 包括锁、并发容器、线程池等工具类。 6.2 Lock框架和Tools类 如ReentrantLock、Semaphore、CountDownLatch等。 6.3 并发集合 如...

    Java核心技术II(第8版)

    1.5.3 序列化单例和类型安全的枚举 1.5.4 版本管理 1.5.5 为克隆使用序列化 1.6 文件管理 1.7 新I/O 1.7.1 内存映射文件 1.7.2 缓冲区数据结构 1.7.3 文件加锁机制 1.8 正则表达式 第十二章 XML 2.1 XML概述 2.1.1 ...

    英文版ScalaReference.pdf

    **6.4 指示符** 用于引用变量或字段。 **6.5 `this`与`super`** 分别指代当前对象和超类的对象。 **6.6 函数应用** 调用函数的语法,包括命名参数和默认参数的使用。 以上是Scala编程语言的核心概念和语法结构的...

Global site tag (gtag.js) - Google Analytics