Java是一門非常流行的編程語言,其提供了很多設計模式來幫助開發者更好地組織和管理代碼。本文將介紹兩種常見的設計模式——裝飾者模式和適配器模式。
裝飾者模式(Decorator Pattern)是一種結構型設計模式,它允許你動態地將行為添加到對象中,同時不影響其他對象的行為。這種模式通常用于需要大量靈活性的情況下,比如需要為一個類添加多個不同的行為而不想創建新的子類。
//抽象類 public abstract class Pizza { String description = "Unknown Pizza"; public String getDescription() { return description; } public abstract double cost(); } //具體類 public class MargheritaPizza extends Pizza { public MargheritaPizza() { description = "Margherita Pizza"; } public double cost() { return 6.99; } } //裝飾者類 public abstract class ToppingDecorator extends Pizza { public abstract String getDescription(); } //具體裝飾者類 public class Cheese extends ToppingDecorator { Pizza pizza; public Cheese(Pizza pizza) { this.pizza = pizza; } public String getDescription() { return pizza.getDescription() + ", Cheese"; } public double cost() { return .20 + pizza.cost(); } } //使用裝飾者模式 Pizza pizza = new MargheritaPizza(); pizza = new Cheese(pizza); System.out.println(pizza.getDescription() + " $" + pizza.cost()); //輸出:Margherita Pizza, Cheese $7.19
適配器模式(Adapter Pattern)是一種結構型設計模式,它允許你將一個類的接口轉換成客戶希望的另一個接口。適配器模式常用于需要使用舊接口的情況下,比如重構一個舊的應用或者使用一個舊類庫。
//原始類 public class Adaptee { public void specificRequest() { System.out.println("Specific request from Adaptee"); } } //目標接口 public interface Target { void request(); } //適配器類 public class Adapter implements Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } public void request() { adaptee.specificRequest(); } } //使用適配器模式 Adaptee adaptee = new Adaptee(); Target target = new Adapter(adaptee); target.request(); //輸出:Specific request from Adaptee
以上就是關于裝飾者模式和適配器模式的簡介。這兩種設計模式在Java中都有很廣泛的應用,對于提高代碼的可擴展性和可維護性都有很大的幫助。