• 什么是单例模式


    1.    什么是单例模式?

    在Java应用程序中,随着应用程序的运行会创建出很多对象。但有时候我们希望在创建某类对象时,无论创建多少次该类对象只有一份在内存中。这就是单例模式。如果我们要实现单例模式首先要保证构造函数私有化,即不允许用户随意调用我本类的构造函数,因为只要通过new操作创建对象,必定要在堆中开辟空间,这样就无法实现单例了。

    2.    例模式的实现

    为了大家能很简单的理解单例模式,我们来实现一个案例:

    案例描述:

          街头 银行取款机一次只可以一个人,用一张卡站它前面提款.
     
    取款机的类,里面包含插入银行卡和取出银行卡两个方法。
    package com.singleton;
         
    /**银行提款机ATM*/
    public class ATMCash {
        private static ATMCash instance;
        private String creditCard ;
         
        private ATMCash(){    
        }
         
        //保证只有一个人一张卡在使用提款机
        public static synchronized ATMCash getInstance(){
            if(instance ==null){
                instance = new ATMCash();
            }
            return instance ;
        }
         
        public String getCard(){
            return creditCard ;
        }
         
        //插入ATM磁卡
        public void insertCard(String card){
            creditCard = card;
    } //取出ATM磁卡 public void getOutCard(){ creditCard = null ; } } 取款操作类,这个类是测试类 package com.singleton; /**取款操作*/ public class SingletonTest { public static void main(String args[]){ /**Jack取款*/ ATMCash jack = ATMCash. getInstance(); jack.insertCard( "招商银行信用卡" ); System. out.println("Jack取钱用的银行卡是:" +jack.getCard()); /**Rose取款*/ ATMCash rose = ATMCash. getInstance(); rose.insertCard( "中国人民银行信用卡" ); System. out.println("Rose取钱用的银行卡是:" + rose.getCard()); } }
    运行结果:
    Jack的银行卡:招商银行信用卡
    Rose的银行卡:中国人民银行信用卡
     
     
    以下是单例模式的一般模型:
    public class Singleton {
        private static Singleton single = null;
        private Singleton(){}
         
        public static Singleton getSingleton(){
            if(single ==null){
                single = new Singleton();
            }
         
        return single ;
        }
    }
    

    本文学习兵转载自https://blog.csdn.net/very9527/article/details/10211881

  • 相关阅读:
    通过输入方式在Android上进行微博OAuth登录
    Android应用集成支付宝接口的简化
    Tomcat启动时报 java.lang.OutOfMemoryError: Java heap space
    Myeclipse中 Exploded location overlaps an existing deployment解决办法
    SVN提交项目时版本冲突解决方案
    Jsp过滤器Filter配置过滤类型汇总
    myeclipse修改jsp文件的名称之后,再也打不开的解决方案
    文件上传之 commons-fileupload(二)
    文件上传之 commons-fileupload(一)
    常见池化技术
  • 原文地址:https://www.cnblogs.com/baxianhua/p/9805676.html
Copyright © 2020-2023  润新知