java-关于允许许多不同类型的构造函数的最佳实践?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-关于允许许多不同类型的构造函数的最佳实践?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含959字,纯文字阅读大概需要2分钟。
内容图文
![java-关于允许许多不同类型的构造函数的最佳实践?](/upload/InfoBanner/zyjiaocheng/656/926485bb7c334b4e987e651614fa98af.jpg)
我有一个称为RawReader的类,该类读取某些资源的字节,对其进行解析,然后将文件写入输出目录.
允许将不同类型作为构造函数的源和目标传递是有意义的.
>源:字符串(文件或URL的),URL,文件或InputStream
>目标:字符串(目录)或文件
但是,如果我重载了构造函数,则剩下8个不同的版本.如果我想添加第三个可选参数,例如chunkSize,我将有16个构造函数!
另一方面,我可能只有两个构造函数,它们分别接受(Object,Object)和(Object,Object,int).如果参数类型不正确,则可以检测到它们并抛出IllegalArgumentExceptions.
此类情况通常在Java中如何处理?
解决方法:
您可以使用builder:
Foo foo = new FooBuilder().setFile(..).setChunkSize().build();
.build()调用Foo的构造方法,该方法接受该构造方法并分配设置的变量.像这样:
公共课Foo {
private Foo(FooBuilder builder) {
//get whatever you can find from the builder to fill the state of Foo
}
public static FooBuilder {
private String filename;
private File file;
private InputStream stream;
private int chunkSize;
// getters and setters
public Foo build() {
return new Foo(this);
}
}
}
内容总结
以上是互联网集市为您收集整理的java-关于允许许多不同类型的构造函数的最佳实践?全部内容,希望文章能够帮你解决java-关于允许许多不同类型的构造函数的最佳实践?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。