atitit.编程语言 类与对象的 扩展机制.doc

atitit.编程语言 类与对象的 扩展机制.doc

 

1.1. Java 下一代没有继承性的扩展1

1.2. 继承1

1.3. 使用cglib动态为Java类添加方法1

1.4. 工具类 1

1.5. Wrap 包装类  装饰器模式2

1.6. 扩展方法 (其实就是工具类的语法糖)2

1.7. Scala 的隐式转换2

1.8. 类别类、ExpandoMetaClass2

 

1.1. Java 下一代没有继承性的扩展

Groovy、Scala 和 Clojure 提供了许多扩展机制,但继承几乎是 Java™ 语言的惟一选择。这一期将介绍类别类、ExpandoMetaClass、隐式转换和协议,借助它们来使用 Java 下一代语言扩展 Java 类。

 

现代语言提供了多种解决方案来实现此目的;在本期中,我将重点介绍其中的 种:

· 开放类

· 包装器类

· 协议

Groovy 包含两种使用开放类 扩展现有的类的不同方式,重新开放” 一个类定义来实现更改(例如添加、更改或删除方法)的能力。

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

 

1.2. 继承

 

1.3. 使用cglib动态为Java类添加方法

 

1.4. 工具类

 

1.5. Wrap 包装类  装饰器模式

 

1.6. 扩展方法 (其实就是工具类的语法糖)

 

1.7. Scala 的隐式转换

Scala 使用包装器类 来解决表达式问题的这个方面

Scala 中的隐式转换是一种扩充现有类的精妙且类型安全的方式,但不能向开放类一样,使用这种机制更改或删除现有方法。

 

1.8. 类别类、ExpandoMetaClass

 

 

 

原文地址:https://www.cnblogs.com/attilax/p/5222137.html