import { LoginType } from './loginType'; import { VerifyInfo } from '../../domain/LoginInfo/verifyInfo'; import { IAccessBiz } from '../../domain/LoginInfo/IAccessBiz'; // export interface IAccessBO { // _info: LoginType; // _verifyCode: VerifyInfo; // } export class AccessBO { private readonly _info: LoginType; private readonly _verifyCode: VerifyInfo; constructor(builder: AccessBOBuilder) { this._info = builder.info; this._verifyCode = builder.verifyCode; } getInstance() { return { info: this._info, verify: this._verifyCode}; } } // AccessBo 可以有的组合是 // {user+password},{user+SMS}, // {mobile+password}, {mobile+SMS} // 可以用构造者 来 创建 实例 export class AccessBOBuilder { private _info: LoginType; private _verifyCode: VerifyInfo; constructor() {} get info(): LoginType { return this._info; } get verifyCode(): VerifyInfo { return this._verifyCode; } setInfo(value: LoginType) { this._info = value; return this; } setVerifyCode(value: VerifyInfo) { this._verifyCode = value; return this; } build(): AccessBO { return new AccessBO(this); } }