gpt4 book ai didi

design-patterns - 通过构造函数或在类方法级别注入(inject)依赖项?

转载 作者:行者123 更新时间:2023-12-04 07:16:10 25 4
gpt4 key购买 nike

需要一个设计建议。
请看下面的类(class)。
类只有一种方法
类具有以 userName 和 passWord 作为参数的构造函数。
问题是 - 如果有什么区别
-- 如果我从构造函数中删除用户名和密码
-- 并发送(用户名,密码)到 AuthoriseUser 方法

这一切都是在注入(inject)依赖的背景下发生的

 public class UserNameAuthorisationService : IUserNameAuthorisationService
{
private readonly string _userName;
private readonly string _password;
private readonly IUserNameAuthorisationRepository _usernameAuthRepository;

public UserNameAuthorisationService(string UserName, string Password, IUserNameAuthorisationRepository UsernameAuthRepository)
{
_userName = UserName;
_password = Password;
_usernameAuthRepository = UsernameAuthRepository;
}

public IUser AuthoriseUser()
{
throw new NotImplementedException();
}
}

提前致谢。

最佳答案

定义参数构造函数的主要思想是使用起始参数启动类。
如果您以后不想更改用户/密码,那么使用参数构造函数的好习惯。

另一方面,如果您要更改用户/密码 - 使用 set方法和无参数构造函数。

顺便说一句,创建一个未完全初始化的类称为两步构造是一种反模式

关于design-patterns - 通过构造函数或在类方法级别注入(inject)依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13730691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com