Java工廠模式和單例模式是面向?qū)ο缶幊讨薪?jīng)常被使用的設(shè)計模式。
工廠模式是一種創(chuàng)建型設(shè)計模式,它通過向客戶端隱藏對象的創(chuàng)建邏輯,讓客戶端可以通過一個共同的接口來創(chuàng)建新的對象,從而提高代碼的靈活性和可維護性。
/** * 定義一個工廠接口 */ public interface CarFactory { Car createCar(); } /** * 實現(xiàn)一個具體的工廠類 */ public class BenzCarFactory implements CarFactory { @Override public Car createCar() { return new BenzCar(); } } /** * 定義一個汽車接口 */ public interface Car { void run(); } /** * 實現(xiàn)具體的汽車類 */ public class BenzCar implements Car { @Override public void run() { System.out.println("BenzCar is running."); } } /** * 客戶端調(diào)用 */ public class Client { public static void main(String[] args) { CarFactory carFactory = new BenzCarFactory(); Car car = carFactory.createCar(); car.run(); } }
單例模式是一種創(chuàng)建型設(shè)計模式,它能夠確保一個類只有一個實例,并且提供一個全局訪問點,以便其他對象可以訪問該實例。
/** * 單例模式的實現(xiàn) */ public class Singleton { private static volatile Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } } /** * 客戶端調(diào)用 */ public class Client { public static void main(String[] args) { Singleton instance = Singleton.getInstance(); System.out.println(instance); Singleton anotherInstance = Singleton.getInstance(); System.out.println(anotherInstance); System.out.println(instance == anotherInstance); } }
通過工廠模式和單例模式的應(yīng)用,我們可以更好地將復(fù)雜的情況進行模塊化和優(yōu)化,提高程序的可維護性和穩(wěn)定性。