`
凌川__
  • 浏览: 82376 次
  • 性别: 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

    Scala快速从入门到神坑

    一、 简介 二、 Scala安装 1. 在Windows操作系统中安装Scala 2. 在Linux操作系统中安装Scala ...6.4 编译和执行 6.5 getter 和setter方法 6.6 辅助构造器 6.7 主构造器 七、对象(Object) 7.1 单例对象 ......

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

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

    快学 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】对象适配器模式-字符...

    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

    Think in ActionScript 3.0Ⅰ Ⅱ Ⅲ汇总

    4.7.4 单例模式(Singleton Pattern) 5. 多态(Polymorphism) 5.1 多态的概念 5.2 多态存在的三个必要条件 5.3 TestPolymoph.as —— 多态的应用,体会多态带来的好处 5.4 TestPolymoph 内存分析 5.5 多态的好处 ...

    spring.doc

    Scope单例多例作用域拓展: 16 3.4.1 singleton(默认值) 16 3.4.2 prototype 17 3.4.3 Request 17 3.4.4 Session 18 3.4.5 Global session 18 3.4.6 指定Bean的初始化方法和销毁方法 18 Bean的初始化和销毁拓展: 18...

    java设计模式

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

    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 ...

    体系结构学习代码!特别详细丰富

     【例2.2】简单工厂方法模式-汽车保险  【例2.3】工厂方法模式-汽车保险  【例2.4】抽象工厂模式-房屋信息  【例2.5】生成器模式-房屋信息  【例2.6】单例模式-互联网连接  【例3.2】组合模式-五子棋...

    疯狂JAVA讲义

    6.3.2 单例(Singleton)类 176 6.4 final修饰符 177 6.4.1 final变量 177 6.4.2 final方法 181 6.4.3 final类 182 6.4.4 不可变类 182 6.4.5 缓存实例的不可变类 186 6.5 抽象类 188 6.5.1 抽象方法和抽象...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例152 通过$_POST方法获取表单元素 182 实例153 通过GET方法提交表单元素 184 实例154 通过$_GET方法获取表单元素 185 3.2 文本框组件的应用 186 实例155 以文本域的形式显示数据信息 186 实例156 限制多行文本域...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例152 通过$_POST方法获取表单元素 182 实例153 通过GET方法提交表单元素 184 实例154 通过$_GET方法获取表单元素 185 3.2 文本框组件的应用 186 实例155 以文本域的形式显示数据信息 186 实例156 限制多行文本域...

    Python Cookbook

    6.4 链式字典查询 229 6.5 继承的替代方案-自动托管 231 6.6 在代理中托管特殊方法 234 6.7 有命名子项的元组 237 6.8 避免属性读写的冗余代码 239 6.9 快速复制对象 240 6.10 保留对被绑定方法的引用且支持...

    Java与模式(含示例代码)

    6.4 什么时候才应当使用继承复用...73 第7 章 里氏代换原则(LSP) .........79 7.1 美猴王的智慧...............................79 7.2 什么是里氏代换原则...................80 7.3 里氏代换原则在设计模式中的...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    6.4使用类中类 6.5小结 第7章继承和多态 7.1使用继承 7.1.1为什么需要继承 7.1.2如何实现继承 7.1.3继承的底层本质 7.2成员的覆盖 7.2.1什么是成员覆盖 7.2.2成员覆盖有何作用 7.3使用多态性 7.3.1什么是...

    php网络开发完全手册

    5.7.2 单例模式(Singleton Pattern) 81 5.7.3 工厂模式(Factory Pattern) 83 5.8 接口与抽象类 86 5.8.1 接口的定义 86 5.8.2 单一接口的实现 87 5.8.3 多重接口的实现 87 5.8.4 抽象类 88 5.9 小结 90 第6章 ...

    编程新手真言......

    8.18 真正的单例模式 186 8.19 真正的迭代器模式 186 8.20 真正的工厂模式 187 8.21 真正的门面模式 187 8.22 真正的命令模式 188 8.23 真正的模板方法模式 188 8.24 真正的适配器模式 188 8.25 业务与逻辑分开 189 ...

Global site tag (gtag.js) - Google Analytics