单列模式分析

模式,一种套路,解决问题的固有方法:
1,饿汉式单例代码:

class Person {
    private static Person p = new Person();

    private Person() {

    }

    public static Person getter() {
        return p;
    }
}

public class Demo1 {
    public static void main(String[] args) {
        System.out.println(Person.getter());
        System.out.println(Person.getter());
    }

}

2,懒汉式单例代码:

class Student4{
    private static Student4 s=null;
    private  Student4(){
        
    }
    public  static Student4 getter(){
        if(s==null){
            s=new Student4();
        }
        return s;
    }
}
public class DanLi{
    public static void main(String[] args) {
        System.out.println(Student4.getter());
        System.out.println(Student4.getter());
    }
}

因为对s先是赋值,后是创建对象对这个变量进行多次操作。懒汉式代码有线程安全问题。
上面是单列模式的一段代码,在之前我们写代码是,创建对象,创建的很爽,我们想创建几个就创建几个,但是在现实生活中这种做法是不合理的,就像玩游戏,你不可能想创建几个对象就创建几个。

分析:

我们通过static来限制对象的调用,因为static变量只能创建一次,在类加载后运行,所以通过static创建对象。
将构造方法私有化,可以让你无法创建对象,无法搞事情。
最后通过getter方法让main方法接收一下,你不能不让人家一个对象都创建不了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,955评论 18 399
  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 9,787评论 4 34
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,464评论 19 139
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,599评论 0 11
  • 当说起自己的那几段感情的时候,希望你们的嘴角是上扬的,尽管当时的过程让你有点难堪,但至少你经历过了 在所有的感情中...
    额o_793d阅读 1,183评论 0 0