반응형
안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
변경에 대해서는 닫혀있어야 합니다.
바꿔말하면 자신의 확장에는 열려있고 주변의 변화에 대해서는 닫혀 있어야 한다는 것입니다.
예를 들어보겠습니다.
편의점에서 일일 삼교대로 직원이 교대하고, 줌라에는 다른 알바가 근무하기도 한다고 할 때
직원이 바뀐다고 해서 손님이 구매라는 행위를 하는데는 영향이 없습니다.
또한 직원이 여자, 남자, 어른, 아이, 사장, 매니저, 알바라고 해서 손님이 구매하는 행위는 영향을 받지 않죠.
여기서 직원교대라고 하는 주변의 변화에는 손님의 구매행위는 영향을 받지 않는 것이고,
직원은 교대라고 하는 확장에 열려있다고 할 수 있어요.
또한 교대 이외에도 구매 담당자의 행위를 추가하거나,
보안 담당자의 행위를 추가하는 확장에 대해 직원은 열려있습니다.
개방폐쇄원칙을 따르지 않는다고해서 OOP를 구현하는 것이 불가능한 것은 아니지만,
개방폐쇄원칙을 무시하고 프로그램을 작성하면 OOP의 가장 큰 장점인
유연성, 재사용성, 유지보수성등을 얻을 수 업다고 합니다.
개방폐쇄원칙에 대한 좋은 예로 스프링 프레임워크가 있습니다.
다음 포스팅에서는 리스코프 치환 법칙 LSP에 대해 공부하겠습니다.
반응형
'개발 etc' 카테고리의 다른 글
JAVA 자바 디자인 패턴 (0) | 2017.03.12 |
---|---|
JAVA 자바 객체 지향 설계 5원칙 SOLID(5) - DIP 의존 역전 원칙 (0) | 2017.03.12 |
JAVA 자바 객체 지향 설계 5원칙 SOLID ISP 인터페이스 분리 원칙 (0) | 2017.03.12 |
JAVA 자바 객체 지향 설계 5원칙 SOLID LSP 리스코프 치환 원칙 (0) | 2017.03.12 |
JAVA 자바 객체 지향 설계 5원칙 SOLID - SRP 단일 책임 원칙 (0) | 2017.03.12 |