1. 程式人生 > 其它 >typescript封裝統一操作的mysql,mongodb的底層庫

typescript封裝統一操作的mysql,mongodb的底層庫

功能:定義一個操作資料庫的庫,支援mysql、monbodb

要求:都有增刪改查方法

約束統一的規範,以及程式碼的重用

解決方案:需要約束規範所以要定義介面,需要程式碼重用所以用到泛型

介面:在面向物件程式設計中,介面是一種規範的定義,它定義了行為和動作的規範

泛型:通俗理解,泛型就是解決類、介面 、方法的複用性

interface DBI<T>{  //定義一個介面
    add(info:T):boolean;
    update(info:T,id:number):boolean;
    delete(id:number):boolean;
    get(id:number):any[];
}
//定義一個操作mysql的資料庫的類 //注意:要實現泛型介面,這和類也應該是一個泛型類 class mysql<T> implements DBI<T>{ //資料庫連結 constructor(){ } 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[] { var list=[ { title:"****", password:"****" } ] return list } } //定義一個操作mysql的資料庫的類 class
mongodb<T> implements DBI<T>{ //資料庫連結 constructor(){ } 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."); } } //操作使用者表,定義一個user類和資料庫表進行對映 class user { username:string|undefined; password:string|undefined; } var u= new user(); u.username="小明"; u.password="123456"; //類作為引數來約束資料傳入的型別 var my=new mysql<user>(); //增加資料 my.add(u);