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