UML - 클래스 다이어그램
uml.html 파일을 열어보면 설명이 전부 되어있다.
ex) 세미프로젝트를 할때 내가 해야할 일들을 메모장으로 적어보라 했는데
text 가 아닌 그림으로 표현해 보는 것이다.
우리가 class 만들기 전에 해당 class 에 대한 그림을 그려보는 것이다.
시스템 => 컴퓨터가 아니라 개발자가 만든프로젝트를 뜻한다.
유스케이스 다이어그램
include => 글을 등록하기 위해서는 로그인을 해야한다.(조건사항)
위에 extend 는 화살표 방향이 잘못된 것이다.
extend => 선택사항
여기서 글을 조회한다라고 했을때 구체적으로 어떻게 할것인지 정해야 한다.
여기까지 그림으로 했으면 이제 문서화 해준다.
현재 학원컴퓨터에는 엑셀이 없기 때문에 교수님 화면을 보았다.
그냥 엑셀파일로 문서화 해준것이다.
엑셀아니어도 메모장으로 해도 상관 없다.
위에처럼 이제 그림을 만들어 왔으면 class 설계를 해야 한다.
현재 만들어진 그림파일은 .UML 파일이다.
.uml 파일이 아닌 .jpg 로 바꾸어 준다. 왜냐~~ 상급자에게 보내어 줄때 .uml 을 여는 파일이 없을수도 있으므로~
이제 class 다이어그램을 만들어본다.
MemberVO 는 public 인지 다른것인지 선택해준다.
Attribute 는 feild 를 뜻한다.
Operation - 메소드를 뜻한다.
파라미터 옆 ... 을누른다
노란버튼 클릭
DirectionKind 는 리턴 타입이다.
그러므로 Type는 String 이다.
DirectionKind 는 입력을 받아온다는 말이다 그러므로 IN
+setUserid(userid:String) 이렇게 나와져 있다.
( ) 는 method 이다. java 에서는 ( ) 는 생성자 또는 메소드라 배워왔다.
즉, public void setUserid(String userid) {
} 이러한 method 이다.
+getUserid():String
public void getUserid() {
return String();
}
원래 method 자리에는 get set을 할필요가 없다.
우리가 feild 의 gender 를 int 타입으로 만들어 왔다.
gender 에 int 가 아닌 남,여로 하자 했을때
public String getGender() {
return "남" or "여"
}
원래는 if() 한다음 int 값이 1이다면 남 2이다면 여 이렇게 해야하는데 코딩은 넣어주지 않는다.
+getGender():String 이렇게 나와야 한다.
이제 우리가 만들어 놓은걸로 한번 해보자.
IsAbstract 는 추상 (현재 추상클래스) 를 말한다.
현재 InterCommand 만나오지 클래스 안의 미완성메소드가 보이지 않는다.
그러므로 다시 지운다.
interface 지만
을 사용하지 않고 class 로 사용한다.
HashMap을 넣어본다.
계~~~ 속 같은 방식으로 반복이다......
여기서 관계를 보면 IndexController 가 일반 클래스인데 AbstractController 의 자식클래스이다.
AbstractController 는 현재 InterCommand 를 상속받고 있으므로
즉, IndexController 는 InterCommand 의 execute를 오버라이딩 해야하기때문에
따로 메소드를 작성해 주지 않아도 된다.
여기서 MemberVO, DAO , ProductVO 가 필요하다면
연습삼아 2개만 넣어주었다.
연습 3가지만 넣어왔다.
MemberDAO 에 메소드를 따로 적을 필요가 없다.
필드는 해주어야 한다.
-> - 화살표가 있든지 없든지 같은말이다.
User 을 전체라 보고 Address 를 일부분, 부품이라 본다.
User에 직접 Address 를 생성하겠다.
Address 가 만들어져 있는것을 가지고 와서 사용하겠다.
-> - 화살표가 있든지 없든지 같은말이다.
MemberDAO 생성자 내에서 직접적으로 만들어서 사용하겠다 라는 말이다.
다이아몬드가 꽉 찬것 => 종속적 , 강한결합 , 강한집합 - 전체를 지우면 따라서 부품도 지워진다.
다이아몬드가 꽉 차지않은것 => 독립적 , 약한결합 , 약한집합 - 전체와 부품은 서로 독립적으로 존재하는 것이다. 전체를 지운다해서 부품이 지워지는게 아니다.
필드내에서가 아니다.!!! 메소드내에서다!!!!!
CLASSIFIER 은 STATIC 을 뜻한다.