Java中的装饰器(Decorator)和依赖注入(Dependency Injection)是两个常见的设计模式,可以大幅度提高程序的可扩展性和可维护性。
装饰器模式是为了增强类的功能,而又不损害原有类的结构,它的核心思想是将一个对象嵌入到另一个对象中,形成一条包装链。从而可以动态地给一个对象添加更多的行为。
// 装饰器模式的Java代码示例 interface Component { void operation(); } class ConcreteComponent implements Component { @Override public void operation() { System.out.println("具体组件的操作"); } } abstract class Decorator implements Component { private Component component; public Decorator(Component component) { this.component = component; } @Override public void operation() { component.operation(); } } class ConcreteDecorator1 extends Decorator { public ConcreteDecorator1(Component component) { super(component); } @Override public void operation() { super.operation(); addedBehavior(); } private void addedBehavior() { System.out.println("装饰器1增加的新行为"); } }
依赖注入(Dependency Injection)是控制反转(Inversion of Control,IoC)的一种实现方式,它的核心思想是不通过代码中硬编码的方式来管理对象之间的依赖关系,而通过配置实现依赖的注入。
// 依赖注入的Java代码示例 class ServiceImpl implements Service { @Override public String getInfo() { return "ServiceImpl"; } } interface Service { String getInfo(); } class Client { private Service service; public void setService(Service service) { this.service = service; } public void doSomething() { System.out.println(service.getInfo()); } } // 依赖注入的配置示例 Client client = new Client(); Service service = new ServiceImpl(); client.setService(service); client.doSomething();
通过使用装饰器和依赖注入,我们可以更加灵活和高效地实现代码重用和扩展,从而使程序的设计更加合理和可维护。