Java 类扩展:从机器人到灯具的实践探索
1. 方法复用与类扩展基础
在编程中,当我们编写适用于多个问题的方法时,将这些方法添加到一个易于复用的类中是个不错的选择。例如,存在一个名为 RobotSE (“Robot Special Edition” 的缩写)的类,它包含了对 Robot 类常用的扩展方法,如 turnRight 和 turnAround 。未来,我们可以直接扩展 RobotSE 而非 Robot ,这样就能轻松使用这些额外的方法。
对于让机器人具备转身和右转功能,除了扩展类,还可以考虑修改现有的 Robot 类。但修改现有类并非总是可行, Robot 类就是一个例子,它以库的形式提供,没有源代码,所以无法对其进行修改,我们称这样的类为封闭修改类。即便有源代码,也可能因公司不想在复杂类的修改中引入错误,或者该类在多个程序中使用,而只有少数程序能从修改中受益,从而将其视为封闭修改类。不过, Robot 类是开放扩展的,我们可以通过 Java 的扩展机制,利用子类对其操作进行修改,且不用担心给原类引入错误或添加不必要的功能。
2. 扩展 Thing 类创建 Lamp 类
Robot 并非唯一可扩展的类,例如 City 类可扩展为 MazeCity
超级会员免费看
订阅专栏 解锁全文
1787

被折叠的 条评论
为什么被折叠?



