typescript封裝統一操作的mysql,mongodb的底層庫
阿新 • • 發佈:2021-11-06
功能:定義一個操作資料庫的庫,支援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的資料庫的類 classmongodb<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);