覆盖类

时间:2013-06-05 19:56:54

标签: java oop override

假设我有一个应用程序x,它经常更新,我需要用我的软件包修改这个应用程序,y。

要获取我的包,y,运行我修改x中的一个主要类(有没有更好的方法来执行此操作?)。在这一点之后,我尝试尽可能少地进行编辑。我这样做是因为当x更新时我可以轻松地复制我的修改,将调用添加到y并离开我们去。

现在我遇到了一个问题,我需要修改x的字体渲染器以使用更好的ttf字体,这将导致修改x中的整个类。

有没有办法覆盖x中的x,而不引用x中的y?我正在考虑在x中删除整个类并用扩展替换它,但是当x更新时会给我的头部带来额外的压力

提前致谢, 约旦

2 个答案:

答案 0 :(得分:3)

你已经用非常笼统的方式描述了你的问题,所以我只能回答一般问题。你应该看看各种结构模式。 facade pattern旨在将程序的一个部分(包y)中的代码与另一个部分(包x)中的更改隔离开来。对于x的许多更改,您只需更新外观,而y中的其他内容都不需要更改。

相关模式包括adapter patterndecorator pattern

鉴于你所描述的内容,我建议避免使用子类化。它创造的依赖性远远超过你想要的依赖性。

答案 1 :(得分:0)

你做了一些事情:

public class x{ some schtuff}

然后你这样做:

Public class y extends x { other stuff}

希望这有帮助,我的儿子有同样的问题!