• 五(十二)单例模式


    一、设计模式:简单来说即“套路”;


     二、单例模式:类的单例模式,就是采取一定的方法,保证整个软件系统中,对某个类智能存在一个对象实例;


      如何实现:饿汉式 vs 懒汉式

    饿汉式:当程序未调用时,就创建好了实例;

    懒汉式:什么时候调用对象,什么时候创建;
    三、区分饿汉式 和 懒汉式?
      饿汉式:坏处:导致对象加载时间过长;好处:线程安全;
      懒汉式:好处:延迟加载,坏处:线程不安去;
     
     四、应用:网站的计数器,应用程序的日志应用,数据库连接池,。。。。

    看代码:

     1 public class Day14Singleton14 {
     2     public static void main(String[] args) {
     3         Bank bank1 = Bank.getInstance();
     4         Bank bank2 = Bank.getInstance();
     5         System.out.println(bank1 == bank2);
     6         
     7         Order11 order1 = Order11.getInstance();
     8         Order11 order2 = Order11.getInstance();
     9         System.out.println(order1 == order2);
    10     }
    11 }
    12 
    13 //单例模式的饿汉式
    14 class Bank{
    15     //1.私有化构造器;
    16     private Bank() {
    17         
    18     }
    19     //内部创建类的对象
    20     //要求此对象是静态的;这里对象还没有调用就创建了对象
    21     private static Bank instance = new Bank();
    22     //提供公共的静态方法,返回类的对象
    23     public static Bank getInstance() {
    24         return instance;
    25     }
    26 }
    27 //单例模式的饿汉式
    28 class Bank1{
    29     //1.私有化构造器;
    30     private Bank1() {
    31         
    32     }
    33     //内部创建类的对象
    34     //要求此对象是静态 final:防止用户恶意更改实例;这里对象还没有调用就创建了对象;
    35     private static final Bank1 instance = new Bank1();
    36     
    37 }
    38 
    39 
    40 //单例模式的懒汉式实现
    41 class Order11{
    42     //1.私有化构造器;
    43     private Order11() {
    44         
    45     }
    46     //声明当前类对象,没有初始化
    47     //要求此对象是静态的;这里没有创建对象
    48     private static Order11 instance = null;
    49     //提供公共的静态方法,返回类的对象,调用getInstance时,才创建对象;
    50     public static Order11 getInstance() {
    51         if(instance == null) {
    52             instance = new Order11();
    53             return instance; 
    54         }
    55         return instance; 
    56     }
    57 }
  • 相关阅读:
    网络对抗技术 20192424 Exp7 网络欺诈防范
    CAN帧格式解析
    C语言复杂的指针
    堆栈段的用途
    uniapp益智五子棋小程序
    穿山甲GroMore广告—(Banner广告)——Android_Unity广告系列文章03
    穿山甲GroMore广告(概览)——Unity游戏接入广告Android篇02
    穿山甲GroMore广告—(信息流广告)——Android_Unity广告系列文章04
    使用Android发布Unity无法破解的问题
    Json Number Format 异常 Expected an int but was 2168520652 at line 1 column 325
  • 原文地址:https://www.cnblogs.com/lixiuming521125/p/13387615.html
Copyright © 2020-2023  润新知