• 设计模式之单例模式


      单例模式(创建型)

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

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

            创建一个类

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

      

  • 相关阅读:
    (OK) angular2-data-table is a Angular2 component for presenting large and complex data.
    Table pagination and Search bar in Angular2
    Angular 2 Tutorial: Create a CRUD App with Angular CLI and TypeScript
    Angular 2 CRUD application using Nodejs
    kernel 3.10内核源码分析--BUG_ON流程
    Protecting Routes using Guards in Angular 2
    Angular 2 User Registration and Login Example & Tutorial
    dmidecode
    (half OK) 在VirtualBox中运行 cm-13-kiwi (华为 荣耀 5X)
    Linux基金会宣布成立OpenSDS组织,应对存储云化转型
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/Singletonmodel.html
Copyright © 2020-2023  润新知