11_TypeScript 类型、接口、类、泛型综合使用

TypeScript 类型、接口、类、泛型综合使用

TypeScript 封装统一操作Mysql Mongodb Mssql 的底层库

功能:定义一个操作数据库的库 支持 Mysql 、Mongodb 、Mssql
要求1:Mysql 、Mongodb 、Mssql 功能一样,都有 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 {
    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[] {
     throw new Error("Method not implemented.");
   }
 }
//  MssqlDb 的类
 class MssqlDb<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[] {
    throw new Error("Method not implemented.");
  }
}
// MongoDb 的类
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[] {
    throw new Error("Method not implemented.");
  }
}

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

let u = new User()
u.username = '001'
u.password = '123456'

let mysql = new MysqlDb<User>() // 类作为参数来约束数据传入的类型
let mssql = new MssqlDb<User>() // 类作为参数来约束数据传入的类型
let mongodb = new MongoDb<User>() // 类作为参数来约束数据传入的类型
mysql.add(u)
mssql.add(u)
mongodb.add(u)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值