本文由尤慕翻译自http://onjava.com/pub/a/onjava/2003/02/05/decorator.html,原作者为Budi Kurniawan,转载请保留此条说明。《二》
下面的文段展示了装饰模式的两个实例。第1个例子中我们创建了BorderDecorator类,用来装饰一个JComponent组件,使其含有一个边框。当我们把一个用BorderDecorator类装饰过的JLabel添加进JFrame中时,它看起来和JBorderLabel例子中的实例一样;但是,我们不再需要创建子类。更好的是,你可以把所有Swing组件传递给BorderDecorato...
本文由尤慕翻译自http://onjava.com/pub/a/onjava/2003/02/05/decorator.html,原作者为Budi Kurniawan,转载请保留此条说明。《一》
Java程序员知道通过继承一个类可以改变或扩展这个类的表现或功能。我们把这叫“inheritance”(继承),它是面向对象编程的一个重要特性。例如,如果你需要一个绘有边框的Swing标签(Jlabel),你可以写一个javax.swing.JLabel的子类。可是通过写子类来满足需求并不总是合适。使用继承在有些时候是不现实的,这时你不得不寻求其它的方式,比如使用“Decorator pa...