1. 캡슐화
객체의 실제 구현을 외부로부터 감추는 방식
구현은 감추되, 외부와 상호 작용하는 부분만 노출하기.
private 로 제한하고 getter 를 사용하여 변수를 읽는다거나, push/pop을 사용하는것도 캡슐화의 좋은 예제
2. 단일책임 원칙
클래스는 최대한 작게. 하나의 역할만.
설명도 25단어(만일/그리고/하며/하지만 같은 접속부사 없이) 이내로 짧게 가능하게.
https://career-gogimandu.tistory.com/27
객체지향 설계에서 꼭 필요한 SOLID 5대원칙(SRP/OCP/LSP/ISP/DIP)
SRP : Single Responsibility Principle, 단일책임 원칙 OCP : Open Closed Principle, 개방-폐쇄 원칙 LSP : Liskov Subtitution Principle, 리스코프 치환원칙 ISP : Interface Segregation Principle, 인터페이..
career-gogimandu.tistory.com
SRP는 여기서 다시보기
맡은 책임도 하나이고 변경할 내용도 하나인 여러 클래스가 모여서 기능하고
다른 작은 클래스와 협업하여 동작을 수행해야 한다.
큼직한 클래스 몇 개로 되어있으면 변경할 때 당장 알 필요 없는 사실까지 섞여나와서 헷갈리게 만듦.
자잘한 클래스 여러개라고 큰그림을 보기 어렵다(X)
3. 결합도와 응집도 : 개별 클래스는 변경하기 쉽게
결합도 : 다른 모듈간의 의존도
응집도 : 모듈내부의 기능 집중도
결합도는 낮게, 응집도는 높게 가져갈 수록 유지보수성이 좋음
응집도가 높다 = 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다 = 서로 관계있는 것끼리 모여있다
클래스의 응집도가 낮아진다면, 함수로라도 쪼개야함.
메서드의 인스턴스 변수가 많을 수록 응집도가 높은 프로그램.
연관 클래스 하나바뀌면 다른거 다 바뀌는 상황 정말 골때림.
그리고 하나에 여러 기능이 뭉쳐있으면 이해도 재사용도 유지보수도 너무 힘듦
결합도가 낮아지면 유연성과 재사용성이 높아짐
추상화할 수록 테스트 코드 짜기도 유용함!
'study > Java' 카테고리의 다른 글
클린코드(Clean code) 12장 - 창발성 (0) | 2022.09.22 |
---|---|
클린코드(Clean code) 11장 - 시스템 (0) | 2022.09.21 |
클린코드(Clean Code) 9장 - 단위테스트 (0) | 2022.09.18 |
클린코드(Clean code) 8장 - 경계 (0) | 2022.09.14 |
클린코드(Clean code) 7장 - 오류 처리 (0) | 2022.09.13 |
댓글