Typescript代码的摘要和实现架构
我知道这可能是错误的,但我仍然需要你的帮助。谢谢 请问,关于代码的抽象和实现架构,您能说些什么 我需要一些想法。谢谢Typescript代码的摘要和实现架构,typescript,ecmascript-6,Typescript,Ecmascript 6,我知道这可能是错误的,但我仍然需要你的帮助。谢谢 请问,关于代码的抽象和实现架构,您能说些什么 我需要一些想法。谢谢 export interface IDataService<T> { getAll(): Promise<DocumentType<T>[]>; } export interface IServiceRequestService extends IDataService<IServiceRequest> { } exp
export interface IDataService<T> {
getAll(): Promise<DocumentType<T>[]>;
}
export interface IServiceRequestService extends IDataService<IServiceRequest> {
}
export class ServiveRequestService implements IServiceRequestService {
private readonly ServiveRequestModel: DistanceModelType
constructor() {
this.ServiveRequestModel = getModelForClass(ServiveRequest);
}
public getAll(): Promise<DocumentType<IServiceRequest>[] {
return this.ServiveRequestModel.find();
}
}
导出接口IDataService{
getAll():承诺;
}
导出接口IServiceRequestService扩展了IDataService{
}
导出类ServiceRequestService实现IServiceRequestService{
私有只读服务请求模型:DistanceModelType
构造函数(){
this.ServiveRequestModel=getModelForClass(ServiveRequest);
}
公共getAll():Promise服务请求服务
是一个类
,意味着您可以通过调用新建
来创建它的许多实例。这些实例之间有什么区别?没有区别,这表明服务请求服务
应该是其他类的实例,而不是它自己的类
我们可以创建一个通用类DataService
,将特定模型作为其构造函数中的参数(“依赖项注入”)。这样就不需要依赖外部getModelForClass
函数。一般来说,类应该封装自己的逻辑,因此依赖外部方法不是一个好的设计
export interface IDataService<T> {
getAll(): Promise<DocumentType<T>[]>;
}
export class DataService<T> implements IDataService<T> {
private readonly model: Model<T>;
constructor(model: Model<T>) {
this.model = model;
}
public getAll(): Promise<DocumentType<T>[]> {
return this.model.find();
}
}
如果serviceverequestmodel
具有正确的类型(Model
),则将自动推断泛型T
,并且all
将具有类型Promise
等等,有什么问题吗?请考虑遵循指南。现在我不知道你在找什么。你好@ JCalz。我只需要对代码进行一个抽象的解释。我不知道什么是“抽象的解释”。是的,如果没有任何上下文或上下文,很难开始理解代码是关于什么的。我不知道这里是否有语言障碍(你英语流利吗?)但是我仍然不知道这里发生了什么,所以我想我帮不了你。我不知道你在问什么。但是这个类依赖于一些外部函数getModelForClass
,这似乎不是一个很好的设计。你可能希望这个服务是一个更通用的服务的实例,而不是一个类。我可以编写一个回答我认为代码应该是什么样子。但我不知道问题是什么?
const ServiveRequestService = new DataService(ServiveRequestModel);
const all = ServiveRequestService.getAll();