单例模式---懒汉式案例

单例模式的概念:

单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。

关键点:

1)一个类只有一个实例 这是最基本的

2)它必须自行创建这个实例

3)它必须自行向整个系统提供这个实例

懒汉模式(类加载时不初始化)

  public static BaseResultCtrl getLoginCtrl() {
        if (LOGIN_CTRL == null) {
            synchronized (BaseResultCtrlFactory.class) {
                if (LOGIN_CTRL == null) {
                    LOGIN_CTRL = new BaseResultCtrl();
                    LOGIN_CTRL.setType(BaseResultCtrlConstants.TYPE_DIALOG);
                    LOGIN_CTRL.setDialogTitle("未登录");
                    LOGIN_CTRL.setDialogContent("您还未登录,请先登录");
                    BaseModuleDto baseModuleDto = new BaseModuleDto();
                    BaseRouteInfoDto baseRouteInfoDto = new BaseRouteInfoDto();
                    baseRouteInfoDto.setSdkModuleFlag(false);
                    baseRouteInfoDto.setRoute(BaseModuleConstants.ROUTE_LOGIN);
                    baseRouteInfoDto.setType(BaseModuleConstants.TYPE_NATIVE);
                    baseModuleDto.setRouteInfo(baseRouteInfoDto);
                    BaseDialogBtnDto b2 = new BaseDialogBtnDto();
                    b2.setText("确认");
                    b2.setModule(baseModuleDto);
                    LinkedList<BaseDialogBtnDto> dialogBtnList = new LinkedList<BaseDialogBtnDto>();
                    dialogBtnList.add(b2);
                    LOGIN_CTRL.setDialogBtnList(dialogBtnList);
                }
            }
        }

        return LOGIN_CTRL;
    }

1)构造函数定义为私有—-不能在别的类中来获取该类的对象,只能在类自身中得到自己的对象

2)成员变量为static的,没有初始化—-类加载快,但访问类的唯一实例慢,static保证在自身类中获取自身对象

3)公开访问点getInstance: public和synchronized的—–public保证对外公开,同步保证多线程时的正确性(因为类变量不是在加载时初始化的)

猜你喜欢

转载自blog.csdn.net/fight_man8866/article/details/81355279