Message

Ina Kim·2021년 1월 4일
0

Java_초급

목록 보기
1/11

<시나리오>

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타입으로 설정

*serviece 클래스에서는 입/출력 금지!

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는 MessageService가 꼭 필요한 존재 : 의존적인 관계
의존객체 또는 의존데이터는 직접 생성하지 않는다 : 의존성주입
UI는 user와 접촉하는 클래스로 보이는것만을 만든다.

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메소드는 객체지향과 관련이 없는 메소드로서
전체를 총괄하고 객체를 실행하는 메소드이다.

profile
기록하는것을 좋아합니다

0개의 댓글