1、接口所涉及的角色
(1)定义者
(2)实现者
(3)使用者
2、接口的隐式实现(推荐使用)
定义者=使用者
方便解耦
3、接口的显示实现
定义者=实现者
4、示例
//service.ts
//定义接口
interface Service {
login(): void
getName(): string
getProduct(): string
startTravel(): void
}
//接口实现
class RPCService implements Service {
login(): void {
throw new Error("Method not implemented.");
}
getName(): string {
throw new Error("Method not implemented.");
}
getProduct(): string {
throw new Error("Method not implemented.");
}
startTravel(): void {
throw new Error("Method not implemented.");
}
}
//接口使用者
//Login page
//file:login.ts
//定义接口
interface LoginService{
login():void
}
const page = {
service:new RPCService() as LoginService, // as 创建用接口的场景,便于场景替换
onLoginButtonClicked(){
//使用接口
this.service.login
}
}