typeScript 单例模式

在创建一个数据库实例的时候,我们不需要每个请求都创建一个实例,所以在设计类的时候,使用单例模式,同时使用TypeScript的静态方法,和静态属性

interface DBOperations {
    query(str:string):boolean
    insert(str:string):boolean
    delete(str:string):boolean
    update(str:string):boolean
}

class MySQL implements DBOperations{
    private static instance:MySQL
    host:string
    port:number
    userName:string
    password:string
    dbName:string
    private constructor(host:string='127.0.0.1',port:number = 3306, userName:string='root',password:string,dbName:string='homeStread'){
        this.host = host
        this.port = port
        this.userName = userName
        this.password = password
        this.dbName = dbName
    }
    toString(){
        let _str =  `
        host:${this.host},
        port:${this.port},
        dbName:${this.dbName},
        userName:${this.userName},
        password:${this.password}
        `
        console.log(_str)
        return _str
    }
    static  getInstance() {
        if (!this.instance) {
            // @ts-ignore
            this.instance = new MySQL()
        }
        return this.instance
    }

    delete(str: string): boolean {
        console.log(`query:${str}`)
        return false;
    }

    insert(str: string): boolean {
        console.log(`delete:${str}`)
        return false;
    }

    query(str: string): boolean {
        console.log(`query:${str}`)
        return false;
    }

    update(str: string): boolean {
        console.log(`update:${str}`)
        return false;
    }
}

let mySQLInstance = MySQL.getInstance()
mySQLInstance.password = 'secret'
mySQLInstance.toString()
mySQLInstance.query('select * from table')

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,782评论 19 139
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,718评论 1 32
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,313评论 8 265
  • 1 几天前,一小兄弟向我征求婚恋建议:你说我是找A呢还是找B? 第二天又问:我是选择稳定的工作还是继续留在公司呢?...
    远9898阅读 1,468评论 25 40
  • 写周记 读周记 在班上开展循环周记的写作活动,差不多有两个月了。今天让组长收上来全部统计了一下。最多的写了五篇,...
    江山吴阅读 616评论 0 1

友情链接更多精彩内容