Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
2年前关闭。
Improve this question
假设我有一个名为
CommandLine中的操作很少,是在每个操作下实例化
请让我知道或建议好的编码设计模式。或建议任何参考书,以便我可以根据分析结果改进编码标准。提前致谢。 ,然后您可以创建不可变对象(通过将该字段定为最终字段)。这样做有很多优点-就像您一直知道的那样,该字段已初始化(理想情况下,您甚至可能希望验证ApiAccessor实际上是有效的并且不包含错误的信息) 您的其他方法可以专注于其直接责任-不用担心该字段是否已初始化 因此,也更容易进行单元测试-如果需要进行模拟,则只需为提供一次ApiAccessor对象-而不是每次调用CommandLineOperation 的“真实”方法之一时都要对其进行处理
缺点:
您不能为指定的CommandLineOperation对象 “切换” ApiAccessor如果您有成千上万个这样的对象在您身边闲逛,那您将浪费一些内存
但是,当您考虑时:在现实世界中,这些缺点并不是什么大问题。
关于所需凭据来自解析文件的评论:归结为依赖项注入!
含义:CommandLineOperation类应而不是包含构造ApiAccessor实例的代码。该对象应该被注入(通过依赖注入框架)-或例如通过构造函数提供。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
2年前关闭。
Improve this question
假设我有一个名为
CommandLineOperation
的类。此类访问API资源。因此,我定义了一个类型为APIAccessor
的实例成员。class CommandLineOperation {
APIAccessor apiAccessor;
void create() {
apiAccessor = new APIAccessor(email,password);
//do work for creation
}
void update() {
apiAccessor = new APIAccessor(email,password);
//do work for update
}
}
class APIAccessor {
String email;
String password;
APIAccessor(email,password) {
this.email = email;
this.password = password;
}
}
CommandLine中的操作很少,是在每个操作下实例化
APIAccessor
还是使用CommandLineOperation
类的构造函数创建一次的更好方法。例如CommandLineOperation(String email,String password) {
this.apiAccessor = new APIAccessor(email,password);
}
请让我知道或建议好的编码设计模式。或建议任何参考书,以便我可以根据分析结果改进编码标准。提前致谢。
最佳答案
答案是:这取决于-您的上下文/要求。
创建CommandLineOperation实例时一次创建ApiAccessor的优点:
缺点:
但是,当您考虑时:在现实世界中,这些缺点并不是什么大问题。
关于所需凭据来自解析文件的评论:归结为依赖项注入!
含义:CommandLineOperation类应而不是包含构造ApiAccessor实例的代码。该对象应该被注入(通过依赖注入框架)-或例如通过构造函数提供。
07-26 04:39