zoukankan      html  css  js  c++  java
  • 五(十二)单例模式

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


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


      如何实现:饿汉式 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 }
  • 相关阅读:
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
  • 原文地址:https://www.cnblogs.com/lixiuming521125/p/13387615.html
Copyright © 2011-2022 走看看