1. 单例模式 (Singleton Pattern):
场景: 在一个应用程序中,需要一个全局唯一的配置管理器,确保配置信息只有一个实例。
public class ConfigManager {private static ConfigManager instance;private ConfigManager() {// 私有构造函数,防止外部实例化}public static ConfigManager getInstance() {if (instance == null) {instance = new ConfigManager();}return instance;}// 其他配置管理的方法...
}
2. 工厂方法模式 (Factory Method Pattern):
场景: 创建一组具有相似功能但具体实现不同的日志记录器。
public interface Logger {void log(String message);
}public class ConsoleLogger implements Logger {@Overridepublic void log(String message) {System.out.println("Console log: " + message);}
}public class FileLogger implements Logger {@Overridepublic void log(String message) {// 实现文件日志记录逻辑}
}public interface LoggerFactory {Logger createLogger();
}public class ConsoleLoggerFactory implements LoggerFactory {@Overridepublic Logger createLogger() {return new ConsoleLogger();}
}public class FileLoggerFactory implements LoggerFactory {@Overridepublic Logger createLogger() {return new FileLogger();}
}
3. 抽象工厂模式 (Abstract Factory Pattern):
场景: 创建不同操作系统下的界面元素,如按钮和文本框。
// Abstract Product
public interface Button {void render();
}// Concrete Products
public class WindowsButton implements Button {@Overridepublic void render() {// Windows 按钮渲染逻辑}
}public class MacOSButton implements Button {@Overridepublic void render() {// MacOS 按钮渲染逻辑}
}// Abstract Factory
public interface GUIFactory {Button createButton();
}// Concrete Factories
public class WindowsFactory implements GUIFactory {@Overridepublic Button createButton() {return new WindowsButton();}
}public class MacOSFactory implements GUIFactory {@Overridepublic Button createButton() {return new MacOSButton();}
}
这些例子演示了设计模式在具体场景中的应用,每个模式都解决了特定问题,并提供了一种结构化和灵活的解决方案。在实际开发中,根据具体情况选择适当的设计模式可以提高代码的质量和可维护性。