首页 / JAVA / java-使用实例成员的编码模式
java-使用实例成员的编码模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-使用实例成员的编码模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1593字,纯文字阅读大概需要3分钟。
内容图文
假设我有一个叫做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的优点:
>然后您可以创建不可变对象(通过将该字段定为最终对象).这样做有很多优点-正如您始终知道该字段已初始化一样(理想情况下,您甚至可能希望验证ApiAccessor实际上是有效的并且不包含错误的信息)
>您的其他方法可以将重点放在他们的直接责任上,而不用担心该字段是否已初始化
>因此,单元测试也更加容易-如果您需要模拟,则只需提供一次ApiAccessor对象-而不是每次调用CommandLineOperation的“真实”方法之一都进行处理
缺点:
>您不能“切换”给定CommandLineOperation对象的ApiAccessor
>万一您有成千上万个这样的对象闲逛,那会浪费一些内存
但是,当您考虑时:在现实世界中,这些缺点并不是什么大问题.
关于所需凭据来自解析文件的评论:归结为依赖项注入!
含义:CommandLineOperation类不应包含用于构造ApiAccessor实例的代码.该对象应该被注入(通过依赖注入框架)-或例如通过构造函数提供.
内容总结
以上是互联网集市为您收集整理的java-使用实例成员的编码模式全部内容,希望文章能够帮你解决java-使用实例成员的编码模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。