黑马程序员_面向对象_Singleton模式与final

来源:互联网 发布:js 二维数组 编辑:程序博客网 时间:2024/05/16 06:23

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

单例设计模式

目的

解决一个类在内存中只有一个对象,多个程序使用统一配置信息对象时,需要保证该对对象的唯一性。

实现步骤:

1.将构造函数私有化:为了避免其他程序过多建立该对象,禁止其他程序调用该对象。
2.在类中创建一个本类对象:为了让其他程序可以访问该类对象。

3.提供一个方法可以获取到该对象的方法:方便其他程序访问自定义的本类对象。

常见单例模式类型:
饿汉式单例:直接将对象定义出来。
懒汉式单例:只给出变量,并不将其初始化。

饿汉式:一进内存 就创建了对象

class single{//1.将构造函数私有化private single(){}//2.在类中创建一个本类对象private static single s=new single();//3.提供一个方法可以获取到该对象的方法   public static single getInstance(){return s;}}public class SingleDemo {public static void main(String[] args){single ss=single.getInstance();}}

懒汉式:什么时候调用什么时候创建对象,对象的延时加载
class single{private single(){}private static single s=null;public static single getInstance(){             if(s==null)    {//同步锁                 synchronized(Single.class)                   {                        if (s==null){                s=single.getInstance();                        }                    }              } return s;}}public class SingleDemo {public static void main(String[] args) {           single ss=single.getInstance()}}

final 关键字

① final可以修饰类,方法,变量。
② final修饰类不可以被继承,但是可以继承其他类。  
③ final修饰的方法不可以被覆写,但可以覆写父类方法。
④ final修饰的变量称为常量,这些变量只能赋值一次。
⑤ 内部类在局部时,只可以访问被final修饰的局部变量。 
⑥ final修饰的引用类型变量,表示该变量的引用不能变,而不是该变量的值不能变;

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

0 0