我对服务/提供者/工厂还很陌生,但是我想知道,当使用诸如stripe之类的第三方库时,您需要在类外部使用私有密钥实例化stripe,然后在其内部调用它。类别如下:
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY as string)
export class PaymentController{
constructor(...){}
createPayment() {
stripe.charges.create{}
}
}
我在控制器类中执行此操作以使用它。条纹文档以这种方式针对javascript显示了此代码,但是在我的控制器类外部实例化此变量似乎并不恰当。我应该执行此操作,还是应该将其用作提供程序/服务。该条带只是一个例子,因为我也想使用第三方服务(例如PubNub)。我不确定是应该将其实例化为单例,还是可以在顶部(导入所在的类之外)进行实例化,然后在该类中使用它。如果归结为我使用了多少个类,那么我只会将其使用一个。如果归结为设计和个人意见/偏好,并且可以以任何一种方式使用,请告诉我。同样,我仅在此类中使用它,而没有其他控制器。那么,是否应该将其用作单例工厂/服务的DI?还是将其实例化到类之上(不是从个人喜好/设计的角度来看,而是出于鲁棒性和没有错误的考虑?
请注意,服务不会保持状态,因此,如果您应将某些外部提供程序用于诸如stripe之类的实例化变量,那么您是否要使用工厂?