角调解人
执行调解人模式的Angular 库,提供处理请求的集中方式 验证和执行管道.
概览
Angular 流程介面库允许您简化Angular应用程序中的请求处理:
- 集中请求处理逻辑.
- 分离论证与执行关切.
- 简化新增请求类型.
通过使用装饰器,您可以轻松注册特定请求类型的验证器和执行处理器,促进 清洁代码组织和模块化.
安装
通过 npm 安装库 :
npm install @foblex/mediator
使用量
1. 界定请求类型
创建一个代表您请求的类 :
export class MyRequest {
static readonly fToken = Symbol('MyRequest');
constructor(public payload: any) {}
}
2. 创建验证器(可选)
通过扩展 IValidator 并使用 FValidator 装饰符执行验证符 :
import { Injectable } from '@angular/core';
import { IValidator, FValidatorRegister } from 'angular-flow-mediator';
import { MyRequest } from './my-request';
@Injectable()
@FValidatorRegister(MyRequest)
export class MyRequestValidator implements IValidator<MyRequest> {
handle(request: MyRequest): boolean {
// Implement validation logic
return request.payload !== null; // Return true if valid, false otherwise
}
}
3. 创建执行处理器
通过扩展 IExecution 并使用 FExecutiveRegister 装饰符执行执行处理器 :
import { Injectable } from '@angular/core';
import { IExecution, FExecutionRegister } from 'angular-flow-mediator';
import { MyRequest } from './my-request';
@Injectable()
@FExecutionRegister(MyRequest)
export class MyRequestHandler implements IExecution<MyRequest, any> {
handle(request: MyRequest): any {
// Implement execution logic
return `Processed payload: ${request.payload}`;
}
}
4. 在模块中提供处理器
确保您在您的角模块中提供您的处理器 :
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { FMediator } from '@foblex/mediator';
import { MyRequestValidator } from './my-request.validator';
import { MyRequestHandler } from './my-request.handler';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
providers: [
FMediator,
MyRequestValidator,
MyRequestHandler
],
bootstrap: [AppComponent]
})
export class AppModule { }
5. 利用调解人
将调频器注入您的组件或服务,并发送请求 :
import { Component } from '@angular/core';
import { FMediator } from '@foblex/mediator';
import { MyRequest } from './my-request';
@Component({
selector: 'app-root',
template: `<h1>Angular Mediator Example</h1>`
})
export class AppComponent {
constructor(private mediator: FMediator) {
const response = this.mediator.send(new MyRequest('Sample Data'));
console.log(response);
}
}
许可证
这个项目根据麻省理工学院的许可证获得许可.
通过遵循这一指南,你应当能够将角调解人纳入您的申请,以干净而高效的调解人模式加强您的请求处理机制.