zoukankan      html  css  js  c++  java
  • 设计模式之单例模式

      单例模式(创建型)

         单例模式是一种对象创建型模式,使用单例模式,可以保证一个类只生成唯一的一个实类对象;也就是说一个应用程序中只会存在一个实类对象;保证一个类,只有一个实类存在,同时提供能对该实例加以访问的全局访问方法

          单例模式分为饿汉模式和懒汉模式

            创建一个类

    package Singletonmodel;
    /*
     * 单例模式的 重点
     * 		一个类的实类有且仅有一个的时候
     */
    public class Person {
    	private Person() {}
    	private String name;
    	private int age;
    	private static  Person person=null;
    	public int getAge() {
    		return age;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    }
    

      

            饿汉模式:在声明的位置进行创建

    package Singletonmodel;
    /*
     * 单例模式的 重点
     * 		一个类的实类有且仅有一个的时候
     */
    public class Person1 {
    	//不能创建对象
    	private Person1() {}
    	private String name;
            //使用final修饰成为常量不能被修改
    	private static final Person1 person1=new Person1();
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public static Person1 getPerson (){//饿汉实现方法
    		return person1; 
    	}
    }
        
    

            懒汉模式:在方法内部进行创建(使用线程锁来控制当前类你没有使用完成别的类无法进行访问)

    package Singletonmodel;
    /*
     * 单例模式的 重点
     * 		一个类的实类有且仅有一个的时候
     */
    public class Person2 {
    	//不能创建对象
    	private Person2() {}
    	private String name;
    	private static Person2 person2=new Person2();
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public static Person2 getPerson (){//懒汉实现方法
    		if (person2==null) {
    			synchronized (person2.getClass()) {
    				person2=new Person2();
    			}
    		}
    		return person2; 
    	}
    }
    

      

  • 相关阅读:
    .NET core webApi 使用JWT验证签名
    sudo
    Mysql Error Code : 1436 Thread stack overrun
    Parallel World 4 – Parallel Task (1)
    SQLSTATE[HY000] [2002] Can't connect to local MySQL server
    Parallel World 3 – Parallel Task (2)
    Parallel World 5 – Concurrent Collections (1)
    Utime failed: Permission denied in Smarty/sysplugins/smarty_internal_template.php on line xxx
    Add Reference
    Javascript Tips
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/Singletonmodel.html
Copyright © 2011-2022 走看看