zoukankan      html  css  js  c++  java
  • 面试积累(简单的单例模式)

    如果我们在做项目时,一个对象在很多地方都要频繁的使用,如果每用一次就new一个对象,这样做无疑会大大的浪费资源,降低程序的性能,这时,我们可以将这个创建对象的这个过程提取出来,做成一个单例模式。常见的单例模式有懒汉单例模式和饿汉单例模式,以下是一个简单的demo来解释一下:

    //懒汉模式
    public
    class SingletonL { //私有的静态对象 private static SingletonL singletonL; //构造方法进行私有化,防止在外部new对象 private SingletonL(){ System.out.println("我是懒汉"); } //得到唯一的对象,单例模式 public static synchronized SingletonL getSingletonL(){ if(singletonL==null){ singletonL=new SingletonL(); } return singletonL; } public void play(String name){ System.out.println("我是一个"+name); } }
    //饿汉模式
    public
    class SingletonE { //声明一个唯一的饿汉 private static final SingletonE singletonE=new SingletonE(); //私有化构造方法 private SingletonE(){ System.out.println("我是饿汉"); } //返回饿汉对象 public static SingletonE getSingletonE(){ return singletonE; } //懒汉和饿汉的模式不同点在于饿汉是直接用了一个final来修饰对象,而饿汉是在get方法中new对象的,还要判断对象是否为空。 }

    以下是一个测试类:

    public class Test {
        public static void main(String[] args){
            SingletonL L=SingletonL.getSingletonL();
            SingletonL L1=SingletonL.getSingletonL();
            L.play("lanhan");
            L1.play("lanhan1");
            L.play("lan");
            //SingletonE E=SingletonE.getSingletonE();
            //SingletonE E1=SingletonE.getSingletonE();
        }
    }
  • 相关阅读:
    ICommand接口
    Binding自动侦听
    WPF比较两个随机数大小写,利用MVVM思想实现
    从一个ListBox中的元素点击导入另一个ListBox元素中
    利用FluidMoveBehavior制作出手机通讯录平滑的效果
    从零开始学习Gradle之三---多项目构建
    用Gradle 构建你的android程序
    iPhone/iPad调整事件递交
    iOS8-Sampler
    iOS8-Sampler
  • 原文地址:https://www.cnblogs.com/Leonar-do/p/5219923.html
Copyright © 2011-2022 走看看