바닥부터 시작하는 프로그래밍/국비JAVA
15일차(StarUML 및 클래스 및 보충?)
예얀
2024. 3. 25. 16:16


+는 public
-는 private
(옵션에서 표시가능)
맨윗줄 클래스
중간줄 필드
마지막줄 메서드

Dependency 의존하는 관계
Composition 포함관계
Aggregation은 약간의존관계
멤버변수가 아니면 Dependency


package p3;
//완료된 예제 아님. 이게 맞다고 생각하기 XX
public class Main {
public static void main(String[] args) {
new 브라우니제조기().만든다();
}
}
class 브라우니제조기{
로직 logic = new 로직();
public void 만든다() {
준비한다();
반죽한다();
반죽을굽는다();
}
private void 준비한다() { // 내부에서만 쓸 로직
logic.그릇1을준비한다();
logic.냄비를준비한다();
logic.그릇3을준비한다();
}
private void 반죽한다() {
초콜릿을녹인다();
logic.그릇2에계란등재료를넣는다();
logic.그릇2에내용물을섞는다();
logic.그릇1의내용물이식으면그릇2에넣고섞는다();
logic.그릇3을가지고밀가루등베이스재료를넣는다();
logic.그릇3의내용을완전히섞은후에체를통해그릇2에넣는다();
logic.기름과베이킹캔를베이킹페이퍼로연결한다();
logic.그릇3의내용물을베이킹캔에넣는다();
}
private void 초콜릿을녹인다() {
logic.냄비에물을채운다();
logic.가스레인지위에올린다();
logic.그릇1안에버터와초콜릿을넣는다();
logic.그릇1을냄비위에놓는다();
logic.그릇1의내용이녹을때까지거기에둔다();
logic.다녹으면그릇을내려놓는다();
}
private void 반죽을굽는다() {
logic.오븐을예열해한다();
logic.베이킹캔을오븐에20분동안넣은다음오븐에서베이킹캔을꺼낸다();
logic.몇시간동안식힌다();
}
}
class 로직{
public void 그릇1을준비한다() {}
public void 냄비를준비한다() {}
public void 냄비에물을채운다() {}
public void 가스레인지위에올린다() {}
public void 그릇1안에버터와초콜릿을넣는다() {}
public void 그릇1을냄비위에놓는다() {}
public void 그릇1의내용이녹을때까지거기에둔다() {}
public void 다녹으면그릇을내려놓는다() {}
public void 그릇2를준비한다() {}
public void 그릇2에계란등재료를넣는다() {}
public void 그릇2에내용물을섞는다() {}
public void 그릇1의내용물이식으면그릇2에넣고섞는다() {}
public void 그릇3을준비한다() {}
public void 그릇3을가지고밀가루등베이스재료를넣는다() {}
public void 그릇3의내용을완전히섞은후에체를통해그릇2에넣는다() {}
public void 기름과베이킹캔를베이킹페이퍼로연결한다() {}
public void 그릇3의내용물을베이킹캔에넣는다() {}
public void 오븐을예열해한다() {}
public void 베이킹캔을오븐에20분동안넣은다음오븐에서베이킹캔을꺼낸다() {}
public void 몇시간동안식힌다() {}
}
SOLID원칙 - 단일 책임 원칙