我有这样的代码:
private static final String BR_TAG = "<br/>";
private ResourceBundle rb;
public String create(){
String result = addLine("some text");
result = addLine("some text");
result = addLine("some text");
....
}
public String addLine(String text){
return rb.getString(text) + BR_TAG;
}
这是我目前的代码,但它是最佳的吗?也许我不应该使用单独的方法为我的结果添加行?没有方法addLine,我可以这样做这个:
public String create(){
String result = rb.getString("some text") + BR_TAG;
result = rb.getString("some text") + BR_TAG;
result = rb.getString("some text") + BR_TAG;
....
}
或者我可以考虑将StringBuilder传递给我的方法的第三个选项:
public String create(){
StringBuilder sb = new StringBuilder();
addLine("some text", sb);
addLine("some text", sb);
....
}
public void addLine(String text, StringBuilder sb){
sb.append(rb.getString(text)).append(BR_TAG);
}
您认为哪种选择最好?
答案 0 :(得分:2)
为什么不使用其他方法?
IMO,就代码之美而言,两者都不是最好的。但就性能而言,第三种情况更好,因为StringBuilder
在使用很多次时花费的时间少于+
。
为了让您的代码看起来更漂亮,也许可以使用Builder模式?
public class LineBuilder {
private StringBuilder builder;
private static final String BR_TAG = "<br/>";
public LineBuilder() {
builder = new StringBuilder();
}
public LineBuilder addLine(String text) {
builder.append(text).append(BR_TAG);
return this;
}
public String build() {
return builder.toString();
}
}
您还可以添加addHeader
或addStrong
添加<h1>
和<strong>
标记的其他方法。
你可以像这样使用它:
String result = new LineBuilder()
.addLine("Hello")
.addLine("World")
.addLine("Bye!")
.build();
看起来更好!