zoukankan      html  css  js  c++  java
  • 单列的使用

    单列:保证整个程序中始终只有某一个对象,只能被创建一次

    单列的使用方法:

    1:私有化结构
    private constructor()
    2:提供一个伴生对象
    companion object{}
    3:在伴生对象中提供一个私有化属性,外部是访问不了的
    private var instance:Repository? = null
    4:提供一个接口(方法)给外部访问instance
    fun getInstance():Repository{
    if (instance == null){
    synchronized(this){
    instance = Repository()
    }
    }
    return instance !!
    }
    5:提供外部获取修改数据的接口(方法),和平时写方法的方式一样了,根据自己的情况多变
    6:synchronized:被synchronized修饰的部分只能被一个调用,假设当a在调用sychronized中的代码时,b要想调用就只能等a调用完,
    该网站对synchronized的讲解: https://blog.csdn.net/zjy15203167987/article/details/82531772

    例子:
    class Repository private constructor(){

    //提供一个伴生对象
    companion object{
    private var instance:Repository? = null
    fun getInstance():Repository{
    if (instance == null){
    synchronized(this){
    instance = Repository()
    }
    }
    return instance !!
    }
    }

    }
  • 相关阅读:
    lvs+keepalived+nginx
    linux配置静态ip
    nginx+keepalived
    nginx反向代理+负载均衡
    win10 安装虚拟机问题
    zlib-1.2.8用VS2010编译生成动态静态库
    mysql 创建库时指定编码
    mysql 升级遇到的问题 (本次由5.1.1X到5.6.28)
    android的SDK包下载
    node-webkit 使用笔记
  • 原文地址:https://www.cnblogs.com/luofangli/p/14941658.html
Copyright © 2011-2022 走看看