클래스 설계 원칙
단일 책임 원칙 Single Resposibility Principle, SRP
한 모듈은 한 액터만을 책임져야 함.
개방-폐쇄의 원칙 Open-Closed Principle, OCP
확장에 대해 열려있고, 수정에 대해 닫혀있어야함.
리스코브 치환 원칙Liskov Substitute Principle, LSP
하위 모듈이 상위 모듈을 대체할 수 있어야함.
인터페이스 분리 원칙 Interface Segregation Principle, ISP
다른 목적 관심을 가진 클라이언트를 인터페이스를 통해 적절히 분리해야함.
의존 역전 원칙 Dependency Inversion Principle, DIP
고수준 모듈은 저수준 모듈의 구현의 의존하면 안됨. 저수준 모듈은 고수준 모듈에 의존가능.