흔히들 Design Pattern을 처음 공부하면, SOLID Principles이라는 단어를 접하게 된다.이게 뭔지를 간단하게 설명하면, Software를 개발할 때 지키면 좋은 5개의 Principle을 앞 글자만 따서 한 단어로 만들어 놓은 것인데, 각 Princ
한 줄 요약하면, 하나의 class를 수정할 이유는 단 하나뿐이어야 한다.로 요약할 수 있다.구체적인 설명을 위하여 아래 예제의 Employee class를 잘 살펴보자.아래 Employee class는 2가지 역할을 하고 있는 것으로 볼 수 있는데, 하나는 salar
한 줄 요약하면 class는 수정에 대해서는 닫혀있고, 확장에 대해서는 열려있어야 한다.로 요약할 수 있다.개인적으로 가장 추상적으로 느껴져서 여러 책을 찾아보았고, 그나마 그 중에 아래의 재해석이 가장 마음에 들었다.기존의 코드를 변경하지 않으면서 새 기능을 추가할
한 줄 요약하면, 코드에서 super class의 object가 있을 자리에 derived class의 object를 가져다 놓아도 문제가 없어야 한다.이다.상술한 문장 그 자체로 이해가 쉽지만, 다른 원칙들에 비해 비교적 formal하게 rule이 정의가 되어있으므로
한 줄 요약하면, 필요 없는 기능까지 구현하도록 강제하지 말라. 정도가 될 수 있다.예를 들어, 어떤 센서 X가 데이터를 요청(Request)하면, 응답(Response)로 데이터를 준다고 하자.이제, 일련의 센서 데이터 수신을 위하여 아래와 같은 interface와
한 줄 요약하면, High-level class가 Low-level class에 의존하지 않도록 하라. 정도가 될 수 있다.여기에서 High/Low-level class는 상속 관계를 의미한다기 보다 아래와 같이 정말 정성적인 의미로 사용된다.Low-level clas