객체지향은 다음의 핵심 개념의 기반한다.
SOLID 원칙은 이런한 객체 지향언어에서 유지보수하기 쉽고, 확장 가능한 코드 만들기 위한 핵심 설계 원칙이며 각 원칙은 객체 지향 프로그램을 구성하는 방법론이다.
예를 들어 플레이어 객체가 있고 입력처리, 이동, 사운드 출력을 할 경우
단일 책임 원칙을 준수하면 하나의 스크립트가 아닌 입력처리, 이동, 사운드 출력의 각각의 스크립트로 작성하는것이 예시이다.
예를 들어 도형의 넓이를 구하는 계산기 클래스가 있는 경우 만약 도형별로 다른 함수를 사용한다면
도형이 늘어나는 계산기 클래스를 수정하여 새로운 함수를 추가해야한다.
개방 폐쇠 원칙을 준수한다면 각각의 도형은 Shape라는 클래스를 상속받고 해당 클래스는 넓이를 구하는 가상함수를 상속 받고 개별로 이를 구현한다.
그렇게 되면 계산기 클래스를 수정하지 않고 각각의 도형이 상속받은 함수를 호출하기만 하며된다.
예를 들어 탈것이라는 클래스가 전진, 후진, 좌회전, 우회전의 기능을 가지고
각각이 이를 상속 받는다면 자동차, 트럭은 대체할 수 있지만, 기차는 이를 대처하지 못할 수 있다.
그렇기에 상속에서는 부모의 기능을 모두 동작할 수 있게하는 상속 구조를 가져야한다.
하나의 인터페이스가 모든 기능을 가지지말고 작은 단위로 나눠야한다.
이를 통해 코드간의 결합도를 낮출 수 있고 수정이 용이하다.
하위 모듈의 멤버로 가지고 그것을 사용하게 되면 하위 모듈만을 위한 구조를 가지게 된다.
이때 하위 모듈을 인페이스화 하면 해당 인터페이스를 상속 받은 다양한 하위 모듈도 사용할 수 있게 된다.