Java中 为何说抽象类是代码重构的结果?

[复制链接]
查看11 | 回复3 | 2009-8-19 07:28:49 | 显示全部楼层 |阅读模式
这涉及到设计模式以及代码的扩展和维护一般代码为了维护方便,要遵守以下一些原则,只列出几个:1、针对接口(泛指,即interface和abstract class)编程而不是针对实现编程,如:ArrayList list = new ArrayList();上面这种写法就是针对实现编程,是极力不推荐的,应该使用下面这种方式:List list = new ArrayList();2、代码应该对扩展开放,对修改关闭,即尽量设计良好的代码结构,增加了新的应用的时候,可以只添加代码而不用修改原来的代码所以,应该多使用接口(interface或abstract class)而不是实现类,因为实现类是死的,一有新的应用这些写死的地方肯定是需要改变的还有许多许多编程的原则,这里只说了两条,不过足矣说明你的问题了
回复

使用道具 举报

千问 | 2009-8-19 07:28:49 | 显示全部楼层
一楼说得好搞了这么久 才知道使用接口的优势。。很有道理我就是喜欢用ArrayList list = new ArrayList();的哈哈非常感谢 顺便说下,背概念是没用的,除非你只是想混个考试及格。。要多编!
回复

使用道具 举报

千问 | 2009-8-19 07:28:49 | 显示全部楼层
他们说的太抽象了这么说吧,你写了个程序,完成后觉得不满意,然后又来修改像把局部变量提升为类变量,一部分代码块提升为一个方法,或者把某个类变量改成局部变量,在这样过程中,你其实是在考虑怎么把程序做的优雅,简洁,高效,等你达到这步时,你可能有会想,能不能把它做成一个通用的工具类,能够使用有所用这一类问题中来的,这个想法一出,你肯定会想到把它通用部分提取出来做出一个类,然后你在使用中发现,各个子类中有相同的动作或行为,比动物的吃,各种动物的吃法肯定是各色各样的,于是你会想能不能不用一个通用办法来表示某些通用但其具体动作行为去又差异的,是这些差异能够延迟到子类去实现,这样你就会想到用抽象方法我觉得,类,抽象类,接口,都是我们在追求高效,优雅,简洁过程中,不断改进,不断思考,不断深化对事物的理解总结出来的,也可以说是从实践中提取出来的具有科学性的常识和道理
回复

使用道具 举报

千问 | 2009-8-19 07:28:49 | 显示全部楼层
自己多体会下设计模式,如果你做一个比较大的项目,就会明白,没有好的设计模式,到最后改代码的量是很巨大的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行