그렇기에 객체지향 프로그래밍 언어의 종류도 다양하고 객체 지향 기술을 받아들이고 적용하는 관점과 기법도 나름 차이가 있기 마련이다. 그럼에도 객체지향이라고 묶을 수 있는 것은 나름의 특징이 있다.
이러한 객체지향 Software를 설계하기 위한 객체지향 설계 원칙(SOLID)이 있다.
SOLID는 아래의 5가지 원칙의 첫 글자를 따서 만든 것이다.
- SRP(The Single Responsibility Principle): 단일 책임 원칙
- OCP(The Open Closed Principle): 개방 폐쇄 원칙
- LSP(The Liskov Substitution Principle): 리스코프 치환 원칙
- ISP(The Interface Segregation Principle): 인터페이스 분리 원칙
- DIP(The Dependency Inversion Principle): 의존관계 역전 원칙