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 {
@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):
场景: 创建不同操作系统下的界面元素,如按钮和文本框。
// 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();
}
}
这些例子演示了设计模式在具体场景中的应用,每个模式都解决了特定问题,并提供了一种结构化和灵活的解决方案。在实际开发中,根据具体情况选择适当的设计模式可以提高代码的质量和可维护性。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/199186.html