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