Java语言 -- 复用类
2009-03-01 00:43
127 查看
在Java语言中,组合和继承是复用类的两个途径。
1、组合
组合是"has-a"关系,将A类的引用置于B类中即可。比如,在使用Spring中用到的反转依赖的那些类都使用了组合。
使用组合为的是,复用一些已有类的功能。
2、继承
继承是Java中的一个重要的概念,但是也会被滥用,从而增加了代码的复杂度。所以,要慎用继承。
继承是"is-a"关系,也就是说,当一组对象具有共同的核心价值,是通过对它们进行"抽象"来解决某个问题。
使用继承为的是,复用一些接口,一些形式。
3、组合与继承之间的选择
(1)一个较好的判断方法是:思考是否需要从新类向基类向上转型,如果向上转型是必须的,则继承是必要的,否则,尽量避免使用继承。
(2)联想起,在设计模式中有Strategy模式和Template Method模式。后者是采用继承来实现的,前者采用了组合。一般而言,可以用Strategy模式来替换Template Method模式。替换的好处是,不用继承,则,相关类可以独立于基类,方便了日后的代码复用。不好之处在于,前一模式增加了代码量及运行的开销。
4、final
对于数据,表示数据初始化后不能再被修改;
对于方法,表示从设计的角度考虑,该方法不能被继承,不能被重载;
对于类,表示从设计的角度考虑,该类不能被继承;
对于参数,表示该参数的引用不能被更改,但若引用的是一个对象,则对象的数值是可以被更改的;
但对于final方法和final类的使用也要特别谨慎,因为很难预见类是如何被复用的。
1、组合
组合是"has-a"关系,将A类的引用置于B类中即可。比如,在使用Spring中用到的反转依赖的那些类都使用了组合。
使用组合为的是,复用一些已有类的功能。
2、继承
继承是Java中的一个重要的概念,但是也会被滥用,从而增加了代码的复杂度。所以,要慎用继承。
继承是"is-a"关系,也就是说,当一组对象具有共同的核心价值,是通过对它们进行"抽象"来解决某个问题。
使用继承为的是,复用一些接口,一些形式。
3、组合与继承之间的选择
(1)一个较好的判断方法是:思考是否需要从新类向基类向上转型,如果向上转型是必须的,则继承是必要的,否则,尽量避免使用继承。
(2)联想起,在设计模式中有Strategy模式和Template Method模式。后者是采用继承来实现的,前者采用了组合。一般而言,可以用Strategy模式来替换Template Method模式。替换的好处是,不用继承,则,相关类可以独立于基类,方便了日后的代码复用。不好之处在于,前一模式增加了代码量及运行的开销。
4、final
对于数据,表示数据初始化后不能再被修改;
对于方法,表示从设计的角度考虑,该方法不能被继承,不能被重载;
对于类,表示从设计的角度考虑,该类不能被继承;
对于参数,表示该参数的引用不能被更改,但若引用的是一个对象,则对象的数值是可以被更改的;
但对于final方法和final类的使用也要特别谨慎,因为很难预见类是如何被复用的。
相关文章推荐
- Java语言的发展历程
- 管道过滤器的实现---java语言
- Java 语言中 List、Set 和 Map 的区别
- 动态调用动态语言之Java脚本API
- 链表的基本操作java语言实现
- 约瑟夫问题c、Java语言实现
- ACCP学习旅程之-----Java语言理解程序逻辑(一,二章节)
- 括号匹配栈的应用java语言实现
- Java语言程序设计 第十五章 (15.15、15.16、15.17、15.18、15.19、15.20)
- (Java)单链表Java语言顺序结构实现(数据结构三)
- JAVA、PHP、RUBY、PYTHON、HTML等语言视频教程合集,很全面,值得收藏。
- Atitit 项目语言的选择 java c#.net php??
- 漫谈Java语言的接口与类型安全
- (Java)单链表Java语言链式结构实现(数据结构四)
- java 语言的主要特点
- Java--帮同学解决问题--第一次java语言技术支持课(第12题)--求1000之内的所有完全数
- JAVA语言学习_01(字符串相关知识)
- Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?
- 第五届蓝桥杯Java语言C组_小题答案
- 对JAVA语言的十个常见误解