Java面试——单例模式和工厂模式

当谈到编程设计模式时,饿汉式和懒汉式是指在创建对象实例时的不同策略。而单例模式和工厂模式是常见的两种设计模式,用于创建和管理对象的方式。

  1. 饿汉式(Eager Initialization)和懒汉式(Lazy Initialization):

    • 饿汉式:在程序启动时或类加载时就创建对象实例,并在整个生命周期内保持单一实例。这意味着对象实例在使用前已经准备好,不需要延迟加载。饿汉式的实现通常是通过静态成员变量或静态代码块来实现。
    • 懒汉式:在对象第一次使用时才创建实例。这意味着对象实例的创建被延迟到需要的时候,也可以说是按需加载。懒汉式的实现通常是在方法调用时进行实例化,可以采用线程安全的方式实现,也可以是非线程安全的。
  2. 单例模式(Singleton Pattern):
    单例模式用于确保一个类只有一个实例,并提供全局访问点以获取该实例。它常用于需要共享资源或需要全局状态的情况。单例模式的实现可以使用饿汉式或懒汉式。在实现时,需要注意线程安全性、延迟加载和对象创建的方式。

  3. 工厂模式(Factory Pattern):
    工厂模式是一种创建对象的设计模式,它将对象的创建逻辑封装到一个工厂类中,通过调用工厂类的方法来创建对象,而不是直接调用对象的构造函数。工厂模式可以根据不同的条件或参数创建不同类型的对象,隐藏了对象创建的细节,提供了更灵活和可扩展的方式来创建对象。

总结来说,饿汉式和懒汉式是对象实例化的不同策略,单例模式确保只有一个对象实例存在,而工厂模式则是通过工厂类来创建对象,提供了更灵活的对象创建方式。这些设计模式在软件开发中经常被使用,有助于提高代码的可维护性、可扩展性和可重用性。

单例模式和工厂模式是两种常见的设计模式,它们都有不同的实现方式。

单例模式的实现:

  1. 懒汉式(线程不安全)

    public class Singleton {
         
         
        private static Singleton instance;
    
        private Singleton() {
         
         }
    
        public static Singleton getInstance() {
         
         
            if (instance == null) {
         
         
                instance = new Singleton();
            }
            return instance;
        }
    }
    
  2. 懒汉式(线程安全,使用双重检查锁)

    public class Singleton {
         
         
        private volatile static Singleton instance;
    
        private Singleton() {
         
         }
    
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值