단일 책임 원칙 (SRP, Single Responsibility Principle) 하나의 클래스는 하나의 책임만 가져야 하며, 클래스는 이러한 책임을 캡슐화 하여야 한다. 이는 곧 클래스가 변경될 때, 그 이유는 단 한 가지여야만 한다는 말과 같다. 즉, 변경이 발생할 때 파급 효과가 적을수록 좋은 객체 지향 설계이다. class BookReader{ public String ReadBook(Book book); public void EditBook(Book book, int line, ...); } 위와 같은 클래스는 SRP를 만족하지 못한다. 왜일까? 현재 BookReader 클래스는 두 개의 책임을 가진다. Book 객체를 읽는 것(Read)과, Book 객체를 편집(Edit)하는 것이다. 만약..