单例模式和工厂模式的具体应用实例

单例模式的应用实例:

  1. 配置管理器: 在一个系统中,需要统一管理配置信息,例如数据库连接信息、日志级别等。使用单例模式可以确保整个系统中只有一个配置管理器实例,方便全局访问和修改配置。

    public class ConfigurationManager {
        private static ConfigurationManager instance;

        private ConfigurationManager() {
            // 私有构造方法
        }

        public static ConfigurationManager getInstance() {
            if (instance == null) {
                instance = new ConfigurationManager();
            }
            return instance;
        }

        // 其他配置相关的方法和属性
    }
    2.日志管理器: 在一个应用中,需要记录日志信息,并可能对日志进行统一管理。使用单例模式可以创建一个唯一的日志管理器实例,确保全局统一的日志记录

    public class LogManager {
        private static LogManager instance;

        private LogManager() {
            // 私有构造方法
        }

        public static LogManager getInstance() {
            if (instance == null) {
                instance = new LogManager();
            }
            return instance;
        }

        // 其他日志相关的方法和属性
    }

    工厂模式的应用实例:

  2. 图形绘制工厂: 

interface Shape {
    void draw();
}

class Circle implements Shape {
    public void draw() {
        // 绘制圆形的具体实现
    }
}

class Rectangle implements Shape {
    public void draw() {
        // 绘制矩形的具体实现
    }
}

class Triangle implements Shape {
    public void draw() {
        // 绘制三角形的具体实现
    }
}

class ShapeFactory {
    public static Shape createShape(String type) {
        switch (type) {
            case "Circle":
                return new Circle();
            case "Rectangle":
                return new Rectangle();
            case "Triangle":
                return new Triangle();
            default:
                throw new IllegalArgumentException("Unsupported shape type");
        }
    }
}
数据库连接工厂: 在一个应用中,可能需要连接不同类型的数据库(MySQL、Oracle、SQL Server),可以使用工厂模式创建一个数据库连接工厂,根据需要创建对应的数据库连接对象。

 

interface DatabaseConnection {
    void connect();
}

class MySqlConnection implements DatabaseConnection {
    public void connect() {
        // MySQL数据库连接的具体实现
    }
}

class OracleConnection implements DatabaseConnection {
    public void connect() {
        // Oracle数据库连接的具体实现
    }
}

class SqlConnection implements DatabaseConnection {
    public void connect() {
        // SQL Server数据库连接的具体实现
    }
}

class DatabaseConnectionFactory {
    public static DatabaseConnection createConnection(String type) {
        switch (type) {
            case "MySQL":
                return new MySqlConnection();
            case "Oracle":
                return new OracleConnection();
            case "SQLServer":
                return new SqlConnection();
            default:
                throw new IllegalArgumentException("Unsupported database type");
        }
    }
}
这些实例展示了单例模式和工厂模式在具体场景中的应用。单例模式用于确保全局只有一个实例,而工厂模式用于创建复杂对象或者一组相关对象,提供更灵活的对象创建机制。

 

你可能感兴趣的:(单例模式,简单工厂模式,java)