제어 반전 원칙이란 상위 모듈은 하위 모듈에 의존적이지 않아야 한다는 원칙이다.가능한 모두 추상화에 의존해야 한다. 추상화가 세부 사항에 의존하는 상황은 바람직하지 않다.이 원칙에 의하면 모듈은 지나치게 상호 의존하지 않아야 한다.
인터페이스 분리의 원칙(The interface Segregation Principle)이란 클라이언트는 불필요한 인터페이스에 의존하지 않아야 한다는 원칙이다.이 원칙은 효율적인 인터페이스 작성을 유도한다.
단일 책임 원칙(The Single Responsibility Principle)이란 클래스는 하나의 책임만을 가져야 한다는 원칙이다.클래스를 구현할 때 한 가지 기능에만 중점을 두어야 한다. 두 가지 이상의 기능이 필요하다면 클래스를 나눠야 한다.이 원칙에서는 클래스
치환 원칙(The Substitution Principle)이란 상속받는 클래스는 기본 클래스의 역할을 완전히 치환 할 수 있어야 한다는 원칙이다.말 그대로 파생된 클래스는 기본 클래스를 완전히 확장해야 한다는 의미다.코드 수정 또는 추가 없이도 파생된 클래스는 기본
싱글톤 디자인 패턴은 글로벌하게 접근 가능한 하나의 객체를 제공하는 패턴이다.로깅이나 데이터베이스 관련 작업, 프린터 스풀러와 같은 동일한 리소스에 대한 동시 요청의 충돌을 방지하기 위해 하나의 인스턴스를 공유하는 작업에 주로 사용한다.예를 들어, 데이터 베이스의 일