컴퓨터 프로그램을 고유의 기능으로 나누는 동작을 권장하는 원칙이다.
자바 패키지는 모듈성을 지원하지 않는다.
SoC 원칙은 모델 뷰, 컨트롤러 같은 아키텍처 관점 그리고 복구 기법을 비즈니스 로직과 분리하는 등의 하위 수준 접근 등의 상황에 유용하다.
세부 구현을 숨기도록 장려하는 원칙이다. 세부 구현을 숨김으로 프로그램의 어떤 부분을 바꿨을 때 다른 부분까지 영향을 미칠 가능성을 줄일 수 있다. 즉 코드를 관리하고 보호하는 데 유용한 원칙
이다.
캡슐화는 특정 코드 조각이 애플리케이션의 다른 부분과 고립되어 있음을 의미한다 캡슐화된 코드의 내부적인 변화가 의도치 않게 외부에 영향을 미칠 가능성이 줄어든다.
private 키워드를 사용했는지를 기준으로 컴파일러를 이용해 캡슐화를 확인할 수 있다.
잘 설계된 소프트웨어를 만들려면 위의 두 가지 원칙을 따르는 것이 필수다.
자바는 개게 지향 언어로 클래스, 인터페이스를 이용한다. UML 다이어그램같은 도구를 이용하여 그룹 코드 간의 의존성을 시각적으로 볼 수 있으므로 소프트웨어를 추론하는데 도움이 된다.