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; 
    	}
    }
    

      

  • 相关阅读:
    JS框架_(Bootstrap.js)实现简单的轮播图
    Unity3D_(网格导航)简单物体自动寻路
    Android_(菜单)选项菜单
    Android_(传感器)获取手机中的传感器
    Java基础__Java中常用数学类Math那些事
    Java基础__Java中异常处理那些事
    Android_(控件)动态添加或删除Spinner下拉菜单
    Android_(消息提示)多种使用Toast的消息提示
    Java基础__随机生成1~15之间不重复的数字
    Android_(自动化)获取手机存储卡的容量
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/Singletonmodel.html
Copyright © 2011-2022 走看看