-1

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

为了让我的包 y 运行,我修改了 x 中的一个主要类(有没有更好的方法来做到这一点?)。在此之后,我尝试尽可能少地进行编辑。我这样做是因为当 x 更新时,我可以轻松地复制我的修改,添加对 y 的调用,然后我们就走了。

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

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

在此先感谢,乔丹

4

2 回答 2

3

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

相关的模式是适配器模式装饰器模式

鉴于您所描述的,我建议避免子类化。它产生的依赖比听起来像你想要的要多得多。

于 2013-06-05T20:04:40.363 回答
0

您按照以下方式进行操作:

public class x{ some schtuff}

然后你这样做:

Public class y extends x { other stuff}

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

于 2013-06-05T20:01:48.600 回答