객체 지향 프로그래밍을 하면 데이터나 기능에 변화가 생기더라도, 관련된 객체만 신경을 쓰면 되니, 프로그래밍 하기 훨씬 편하다.
그리고 조금 더 의미 있는 단위로 나누기 때문에, 코드를 이해하거나, 다른 프로그램에서 재사용하기에도 더 수월하다. 꼭 전체가 완성되지 않아도 일부 기능만 사용해볼 수도 있기 때문에 테스트에도 더 유리하다.
반면,객체 지향의 단점은 코드를 잘 나누고 설계하는 것이 어렵다.
코드를 작성하기도 전에, 설계부터 많은 노력이 든다.
그래서 굳이 객체 지향적으로 만들 필요가 없는 경우들, 예를 들어 규모가 작아서 일을 나누지 않고 혼자 바로 만들어 버릴수 있다든지 혹은 데이터를 크게 신경쓰지 않아도 된다든지, 혹은 이후에 바뀔 염려가 거의 없느 ㄴ경우에는 이런 설계과정 없이 그냥 바로 만들어버리는게 더 빠르고 효율적일 수 있다.
또 객체 지향의 단점이라 하면, 사람이 이해하고 작성하기 편한 방식으로 코드를 나눠두다 보니, 컴퓨터가 이해하는데 시간이 걸려 실행하는 속도가 느려지거나, 저장 공간을 많이 차지하기도 한다.
극도로 빠른 실행 속도가 필요한 분야 혹은 저장 장치나 성능이 제한적인 기기(스마트 워치,스마트 tv,스마트 냉장고)에서 돌아가는 프로그램을 만들 떄는 객체 지향을 안 쓰는 게 더 유리하다.
장점
단점