Message


<シナリオ>

1)データクラスの作成(DTO)


データ・クラスとは?


データを簡単に収集する.
純データ.(後で必要に応じてメソッドを追加)
データ分散の防止と処理.
package message;

public class MessageDTO { //데이터클래스
	//누구에게, 제목, 내용
	private String to;
	private String title;
	private String content;
	
	public MessageDTO(String to, String title, String content) { //DTO를 꼭 사용해야하기때문
		super();
		this.to = to;
		this.title = title;
		this.content = content;
	}

	@Override
	public String toString() {
		return "MessageDTO [to=" + to + ", title=" + title + ", content=" + content + "]";
	}
	
}

2)サービスクラスの作成(ロジック)

package message;

public class MessageService { //메서드-파라미터-인스턴트변수-생성자

	
	public boolean messageSender(MessageDTO dto) { //return값은 전송성공or실패--> boolean
		boolean result = false;
		
		return result;
	}
}
MessageSenderのパラメータは、データクラスで宣言されたMessageDTOです.
return値はメール転送の成功/失敗なのでtrue/false booleanタイプに設定します
*サービスクラスの入力/出力は禁止されています.

3)UI(画面入出力)

package message;

import java.util.Scanner;

public class MessageUI { //사용자와 접촉하는것만

	Scanner scanner;
	MessageService service;
	MessageDTO dto;

	public MessageUI(Scanner scanner, MessageService service) {
		super();
		this.scanner = scanner;
		this.service = service;
	}

	public void work() {

		System.out.println("누구에게?");
		String to = scanner.nextLine();

		System.out.println("제목은?");
		String title = scanner.nextLine();

		System.out.println("내용은?");
		String content = scanner.nextLine();
		
		
		System.out.println("전송을 취소하려면 n을 눌러주세요");
		String input = scanner.nextLine();
		if(input.equals("n")) {
			work(); //재귀: work메서드에서 work메서드호출
		}
		
		MessageDTO dto = new MessageDTO(to, title, content);
		boolean result = service.messageSender(dto);
		System.out.println("전송내용: "+ dto);

	}


}
MessageUIにはメッセージ・サービスが必要です:依存関係
依存オブジェクトまたは依存データを直接作成しない:依存性の注入
UIは、ユーザと接触するように見えるクラスのみを作成します.

4) Main

package message;

import java.util.Scanner;


public class Main {

	public static void main(String[] args) { //전체를 총괄, 객체를 만들고 실행하는것.

		Scanner scanner = new Scanner(System.in);
		MessageService service = new MessageService();
		MessageUI ui = new MessageUI(scanner, service);

		ui.work();

	}
}
mainメソッドはオブジェクト向けに関係のないメソッドです.
グローバルを統括してオブジェクトを実行する方法.