ジェネレータモード
16879 ワード
Main関数
public static void main(String[] args) {
text();
}
private static void text()
{
Text text = new Text.Builder()
.setTitle("Hello")
.setContent("Name")
.setItems()
.build();
System.out.println(text);
}
以上のコードの出力値타이틀 : Hello
내용 : Name
항목 :
- null
テキストクラスのインスタンス。値の追加と設定を続行する方法について
テキストクラスと変数の設定
まずTextクラスを生成し、次に返す文字列と出力テキストのtoString()を生成します.
public class Text {
private String text;
@Override
public String toString() {
return text;
}
}
Builderクラスをテキストの静的内部クラスとして作成Textのクラス内部にのみ存在し、アクセス時にTextを使用します.ジェネレータとしてのみアクセスし、クラスとして扱う
public static class Builder {
private String title;
private String content;
private Optional<String[]> items = Optional.empty();
public Builder setTitle(String title){
}
public Builder setContent(String content) {
}
public Builder setItems (String ... items) {
}
public Text build() {
}
}
ビルダーを実装する方法今は最初の主関数のようにText必要な出力と値は、Builderアクセスメソッドによって、接続
.
によって実現され得るpublic static class Builder {
private String title;
private String content;
private Optional<String[]> items = Optional.empty();
public Builder setTitle(String title){
this.title = title;
return this;
}
public Builder setContent(String content) {
this.content = content;
return this;
}
public Builder setItems (String ... items) {
if (items.length > 0)
this.items = Optional.of(items);
else
this.items = Optional.empty();
return this;
}
//메소드를 모두 구현 후 구현된 메소드를 통해 얻은 값을 출력하는 최종메소드
public Text build() {
Text Text = new Text();
String*Builder* <--- Builder형식이다.
닷(.)을 통해 값을 append()하는 방식으로 구현되는 문자열 처리 클래스처럼
현재 메소드 또한 이런 방식을 통해 만드는 것이다
StringBuilder sb = new StringBuilder();
sb.append("타이틀 : ").append(title).append("\n");
sb.append("내용 : ").append(content).append("\n");
sb.append("항목 : ").append("\n");
if (items.isEmpty())
sb.append(" - ").append("null").append("\n");
else {
for (String item : items.get())
sb.append(" - ").append(item).append("\n");
}
Text.text = sb.toString();
return Text;
}
}
n/a.結論
Textクラスで必要な出力フォーマットの文字列を生成できます
Reference
この問題について(ジェネレータモード), 我々は、より多くの情報をここで見つけました https://velog.io/@dnstlr2933/Builder-패턴テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol