import { IAdapter } from "./IAdapter"; import { List } from "./List"; export abstract class AdapterBase implements IAdapter { protected _arr: Array | List; constructor(useList: boolean = true) { if (useList) { this._arr = new List(); } else { this._arr = new Array(); } } public add(t: T): void { this._arr.push(t); } /** * 弹出顶部元素 */ public abstract remove(): T | undefined; public get length(): number { return this._arr.length; } public get isEmpty(): boolean { return this._arr.length <= 0; } clear(): void { if(this._arr instanceof List){ this._arr = new List(); } else { this._arr = new Array(); } } }