Java是一门非常强大的编程语言,它支持许多设计模式。其中适配器模式和装饰模式是两种常用的设计模式。
适配器模式用于将一个类或接口的接口转换成另一个类或接口,使得这两者能够协同工作。适配器模式通常包括一个适配器类,这个适配器类实现了目标接口,同时也包含了需要适配的类。适配器模式可以用来解决接口不兼容的问题。
public interface Target { void request(); } public class Adaptee { public void specificRequest() { // do something } } public class Adapter implements Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } public void request() { adaptee.specificRequest(); } }
装饰模式用于向一个对象添加额外的功能,同时又不改变对象的原有结构。
public interface Component { void operation(); } public class ConcreteComponent implements Component { public void operation() { // do something } } public abstract class Decorator implements Component { private Component component; public Decorator(Component component) { this.component = component; } public void operation() { component.operation(); } } public class ConcreteDecoratorA extends Decorator { public ConcreteDecoratorA(Component component) { super(component); } public void operation() { super.operation(); // add additional behavior } } public class ConcreteDecoratorB extends Decorator { public ConcreteDecoratorB(Component component) { super(component); } public void operation() { super.operation(); // add additional behavior } }
通过适配器模式和装饰模式,我们可以更加方便地实现不同的功能。