欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

TS05 TS类型、接国、类、泛型综合使用-.TypeScript封装统一 操作Mysql Mongodb Mssq|l的底层类库

程序员文章站 2022-06-30 12:25:36
TypeScript类型、接口、类、泛型综合使用-.TypeScript封装统一 操作Mysql Mongodb Mssq|l的底层类库功能:定义一个操作数据库的库支持 Mysql Mssql MongoDb要求1: Mysql MsSql MongoDb功能一 样都有 add update delete get方法注意:约束统一的规范、以及代码重用解决方案:需要约束规范所以要定义接口, 需要代码重用所以用到泛型1、接口:在面向对象的编程中,接口是一 种规范的定义,它定义了行为和动作的规范2、泛...

TypeScript类型、接口、类、泛型综合使用-.TypeScript封装统一 操作Mysql Mongodb Mssq|l的底层类库

功能:定义一个操作数据库的库支持 Mysql Mssql MongoDb
要求1: Mysql MsSql MongoDb功能一 样都有 add update delete get方法
注意:约束统一的规范、以及代码重用
解决方案:需要约束规范所以要定义接口, 需要代码重用所以用到泛型
1、接口:在面向对象的编程中,接口是一 种规范的定义,它定义了行为和动作的规范
2、泛型通俗理解:泛型就是解决类接口方法的复用性、

/**
 * 功能:定义一个操作数据库的库支持 Mysql Mssql MongoDb
 * 要求1: Mysql MsSql MongoDb功能一 样都有 add update delete get方法
 * 注意:约束统一的规范、以及代码重用
 * 解决方案:需要约束规范所以要定义接口, 需要代码重用所以用到泛型
 * 1、接口:在面向对象的编程中,接口是一 种规范的定义,它定义了行为和动作的规范
 * 2、泛型通俗理解:泛型就是解决类接口方法的复用性、
 */



//定义接口
interface DBI<T>{
    add(info:T):boolean;

    update(info:T,id:number):boolean;

    delete(id:number):boolean;

    get(id:number):any[];
}

//要实现返现接口,这个类也应该是一个泛型类

//定义mysql类
class MysqlDb<T> implements DBI<T>{
    add(info: T): boolean {
        throw new Error("Method not implemented.");
    }
    update(info: T, id: number): boolean {
        throw new Error("Method not implemented.");
    }
    delete(id: number): boolean {
        throw new Error("Method not implemented.");
    }
    get(id: number): any[] {
        throw new Error("Method not implemented.");
    }
}



//定义mssql类
class mssqlDb<T> implements DBI<T>{
    add(info: T): boolean {
        throw new Error("Method not implemented.");
    }
    update(info: T, id: number): boolean {
        throw new Error("Method not implemented.");
    }
    delete(id: number): boolean {
        throw new Error("Method not implemented.");
    }
    get(id: number): any[] {
        throw new Error("Method not implemented.");
    }
}


//定义mongo类
class mongoDb<T> implements DBI<T>{
    add(info: T): boolean {
        console.log(info)
        return true;
    }
    update(info: T, id: number): boolean {
        throw new Error("Method not implemented.");
    }
    delete(id: number): boolean {
        throw new Error("Method not implemented.");
    }
    get(id: number): any[] {
        //这里模拟数据库请求数据
        var list = [{
            userName:'kjh',
            password:'123456',
            id:4
        }]

        return list;
    }
}



//操作用户表  定义一个user类 和数据库表做映射
class User{
    userName:string | undefined;
    password:string | undefined;
    id:number | undefined;
}

var u = new User();
u.userName = '张三';
u.password = '123456';
u.id = 1;


var oMongoDb = new mongoDb<User>();

//增加数据
oMongoDb.add(u)
// User {userName: "张三", password: "123456", id: 1}


//查询数据
console.log(oMongoDb.get(4));
// 0: {userName: "kjh", password: "123456", id: 4


// 云云...



本文地址:https://blog.csdn.net/qq_43955202/article/details/107673883

相关标签: TypeScript