본문 바로가기
Today/Study

23/10/30

by shulk 2023. 10. 30.

1.응집도와 결합도

응집도와 결합도에 대해 읽어보니 헷갈리고 어려웠는데 느낀대로 말해보면 결합도는 의존성,응집도는 한 모듈이 갖고있는 하나의 기능을 따지는듯하다.  

*결합도가 낮으면 좋고 높으면 그닥 /  응집도가 낮으면 그닥 높으면 좋다

결합도,응집도 여러 단계로 나뉘어 지는데 이건 자세히 들어가려면 거의 책 한권의 내용일듯해서 일단 크게만 보고 예를들어 보면

 

-결합도:  비밀번호 변경하는 A클래스 있을때 A클래스에서는 비번 변경하려는 회원정보 불러오기 B클래스,변경비번확인 체크하는 C클래스,변경완료하고 회원정보 등록하는 D클래스 이렇게 필요하니 결합도가 있다 할 수 있는듯하다.

-응집도: 회원가입 하는 클래스안에서 비밀번호 변경하는 메소드가 있을시, 회원가입 클래스에서는 회원 가입만 해야하는데 완전 다른 행동인 비밀번호 변경하는게 들어있어서 응집도가 낮다 볼 수 있는듯하다. 

 

Class 회원가입 {

	DataProcessing dataprocessing = new DataProcessing();


	public void 회원가입(닉네임,비번,비번확인,휴대폰번호){	

		dataprocessing.닉네임 중복체크();
		dataprocessing.중복 이메일 체크();
		dataprocessing.비밀번호 조건체크();
		dataprocessing.비밀번호 확인이랑 같은지 체크();
		dataprocessing.휴대폰 본인확인 체크();
		dataprocessing.회원리스트에 등록();
	}

}

 

이걸 보면 회원 가입 클래스에서는 오직 DataProcessing 클래스에만 의존하기 때문에 결합도가 좀 낮다고 있으나

DataProcessing클래스는 맞는지 틀린지 처리하는 클래스인데 회원을 등록하는 기능까지 갖고 있어서 응집도가 좀 높다고 볼수 있다.

 

Class 회원가입 {

	DataProcessing dataprocessing = new DataProcessing();
	PhoneNumCheck numCheck  = new PhoneNumCheck();
	JoinRoute joinRoute = new JoinRoute();
	CreateUser createUser= new CreateUser();

	public void 회원가입(닉네임,비번,비번확인,휴대폰번호){	

		dataprocessing.닉네임 중복체크();
		dataprocessing.중복 이메일 체크();
		dataprocessing.비밀번호 조건체크();
		dataprocessing.비밀번호 확인이랑 같은지 체크();

		numCheck.휴대폰 본인확인 체크();
        
		joinRoute.어떻게 알고 가입했는지();

		createUser.회원리스트에 등록();
	}

}

이제 위에 첫번째 코드부분 설명은 없었고 잊어버렸다하고 이번꺼 보면 

이번에는 DataProcessing,PhoneNumCheck,JoinRoute,CreateUser 이렇게 4개의 클래스에 의존해서 결합도가 좀 높다고 볼 수 있고, DataProcessing,PhoneNumCheck,JoinRoute,CreateUser 클래스안 메소드들은 회원가입 메소드안에서 호출 하는 메소드만 존재한다고 했을때 응집도가 좀 낮다고 볼 수 있다.

 

*지금은 예시로 이해를 위해서 결합도,응집도가 높다,낮다 한거지만 프로그램의 크기에 따라 결합도,응집도 세기가 결정되는듯하니 개수로만 보고 응집도,결합도 낮다,높다 판단하면 안 되는듯하다!!

'Today > Study' 카테고리의 다른 글

23/11/08  (0) 2023.11.08
23/11/06  (0) 2023.11.05
23/10/27  (0) 2023.10.27
23/10/24  (0) 2023.10.24
23/10/23  (0) 2023.10.23