zoukankan      html  css  js  c++  java
  • 面试题6,单例模式等等。24种设计模式。

    singleton单例模式是java中最简单的设计模式之一。这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。

    这种模式涉及一个类,他负责创建一个对象,同时确保只创建一个对象。这个类提供了一种方法来访问它的唯一对象,可以直接访问,而不需要实例化。

    饿汉式:

    public class SingleObject {
    
        private static SingleObject instance = new SingleObject();
    
        private SingleObject(){}
    
        public static SingleObject getInstance(){
            return instance;
        }
    
        public void showMessage(){
            System.out.println("Hello World!");
        }
    }
    public class SingletonPatternDemo {
    
        public static void main(String[] args) {
            SingleObject object = SingleObject.getInstance();
            object.showMessage();
        }
    }

    懒汉式:

    public class SingleObject {
        // 静态实例变量
        private static SingleObject instance;
        // 私有化构造函数
        private SingleObject(){
    
        }
    
        // 静态public方法,向整个应用提供单例获取方式
        public static SingleObject getInstance(){
            if (instance==null){
                instance = new SingleObject();
            }
            return instance;
        }
    
        public void showMessage(){
            System.out.println("Hello World!");
        }
    }

    懒汉式的线程安全:

    public class SingleObject {
        // 静态实例变量加上volatile
        private static volatile SingleObject instance;
        // 私有化构造函数
        private SingleObject(){
    
        }
    
        // 双重检查锁
        public static SingleObject getInstance(){
            if (instance==null){
                synchronized (SingleObject.class){
                    if (instance==null){
                        instance = new SingleObject();
                    }
                }
            }
            return instance;
        }
    
        public void showMessage(){
            System.out.println("Hello World!");
        }
    }
  • 相关阅读:
    Android NDK 学习之传递类对象
    https://www.aminer.cn/ AI研究
    MYSQL 的一些文件及说明
    Windows下移动MariaDB数据目录 (转!)
    MariaDB Galera Cluster 10.1 只支持 LINUX ?!
    MARIADB 在 OPENSUSE 的安装。
    “命令行程序”的通用图形界面 (转)
    代码生成的地址:mygeneration
    上海力软--快速开发框架
    康力优蓝机器人 -- 优友U05类人型机器人发布
  • 原文地址:https://www.cnblogs.com/fuckingPangzi/p/10155723.html
Copyright © 2011-2022 走看看