객체지향 5원칙 : 1.SRP 단일 책임 원칙 이렇게 쓰면 '안'된다!

길은, 가면 뒤에 있다

 

 

소설책처럼 읽는 객체지향 5원칙(SOLID)

 

1. 단일 책임 원칙 Single Responsibility Principle

 

-하나의 기능, 하나의 책임

클래스는 하나의 기능(목적,책임)만 가지며, 클래스가 제공하는 서비스는 하나의 책임을 수행하도록 작성되여야 함!

 

-불 명확한 목적은, 사이트 이펙트를 유발

클래스의 목적이 명확하지 않으면, 구조가 복잡해지고, 수정사항이 불필요하게 넓혀지며, 그에 따른 사이드이펙트도 생길 수 있습니다.

 

 

 

ex)

서버와 통신을 해서 데이터를 받아오는 클래스를 만들면서, 그 데이터를 처리하는 기능까지 넣게 된다면 한 개의 클래스에서 2가지의 책임을 지니게 됩니다.

 

그렇게 되면, 데이터 처리기능을 수정하게 될 때, 상관없는 통신하는 클래스를 수정하게 되며, 영향을 받는 범위도 커지게 되어 유지보수가 어려워집니다.

 

그리고 이 클래스가 뭘하는 클래스인지는 모르는 스파게티 소스가 됩니다.

 

 

결론

이 원칙은 단순하지만, 실제로 설계에 적용할 땐 쉽지 않습니다.

 

그 이유는 실무환경은 다양하고, 복잡하며 생각지 못한 변경이 발생하기 때문입니다. 하지만 항상 생각하고 원칙을 지킬려고 행동하다보면  객체지향스러운 고급진 코드가 되지 않을까합니다.

댓글

Designed by JB FACTORY