객체지향 프로그래밍에서는 아래와 같은 설계 원칙을 바탕으로 제작한다.
- 단일 책임 원칙 (SRP, Single responsibility principle)
- 개방 폐쇄 원칙 (OCP, Open / closed Principle)
- 리스코프 치환 원칙 (LSP, Liskov subsitutation principle)
- 인터페이스 분리 원칙 (ISP, Interface segregation principle)
- 의존관계 역전 원칙 (DIP, Dependency inversion principle)