Swing框架中的Frame类,间接继承了Component,其实是一个错误的设计。这样继承表示可以使用Component类的地方,都可以使用Frame对象,但是运行起来,估计未必可行。
Frame之所以继承自Component,完全是出于实现该类的代码比较方便,只是想复用Component类中的一部分代码。这种误用在深层次继承中表现明显。
因此,一旦发现继承体系超过两层,一定要打住。想想是在设计API还是在复用代码,如果是后者,那么要重新审视,并严格设计这个API。
Swing框架中的Frame类,间接继承了Component,其实是一个错误的设计。这样继承表示可以使用Component类的地方,都可以使用Frame对象,但是运行起来,估计未必可行。
Frame之所以继承自Component,完全是出于实现该类的代码比较方便,只是想复用Component类中的一部分代码。这种误用在深层次继承中表现明显。
因此,一旦发现继承体系超过两层,一定要打住。想想是在设计API还是在复用代码,如果是后者,那么要重新审视,并严格设计这个API。
转载于:https://my.oschina.net/tingzi/blog/135980