Java策略模式和代理模式是兩種常見的設計模式,可以有效地提高代碼的可擴展性和可維護性。
策略模式
策略模式是一種行為型設計模式,可以在運行時動態地選擇算法。它將每個算法封裝成特定的類,并在運行時根據需要選擇不同的算法實現。 public interface Strategy { void execute(); } public class ConcreteStrategyA implements Strategy { public void execute() { System.out.println("Executing ConcreteStrategyA"); } } public class ConcreteStrategyB implements Strategy { public void execute() { System.out.println("Executing ConcreteStrategyB"); } } public class Context { private Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public void execute() { strategy.execute(); } } public class Example { public static void main(String[] args) { Context context = new Context(new ConcreteStrategyA()); context.execute(); context.setStrategy(new ConcreteStrategyB()); context.execute(); } }
代理模式
代理模式是一種結構型設計模式,可以提供對其他對象的訪問和控制。它創建一個代理對象,代理對象可以代替真實對象執行某些操作。 public interface Subject { void request(); } public class RealSubject implements Subject { public void request() { System.out.println("RealSubject executing request"); } } public class Proxy implements Subject { private RealSubject realSubject; public void request() { if (realSubject == null) { realSubject = new RealSubject(); } realSubject.request(); } } public class Example { public static void main(String[] args) { Proxy proxy = new Proxy(); proxy.request(); } }
策略模式和代理模式是兩種不同的設計模式,但它們都可以提高代碼的靈活性和可維護性。