개방-폐쇄 원칙 (Open-closed principle)
소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.
기능을 변경하거나 확장할 수 있으면서 (개방)
그 기능을 사용하는 코드는 수정하지 않는다. (폐쇄)
-> 추상화
와 매우 관련깊은 원칙인듯.
자쿰 몸통 / 팔
몸통 : Main
팔 : 기능
팔에는 개방(Open)
몸통은 폐쇄(Closed)
기능 8개 추가
기능 추가시 몸통소스 건드리지말고 팔을 붙였다 뗏다하자~~!!
기능을 몸통에 다넣어버리면 서로 엉키고 엉켜서 한 기능이 다른기능에 의존적이게 짤지도 모릅니다.
나중에 어떤 기능을 제거 했을 때 딸려오는 에러(?) 들이 있을지도 몰라요. 최소한 그런 불안감을 가지고 갑니다.
코드 가독성도 떨어지겠쮸
개방
변화가 예상되는것은 추상화 해버리기!! 책임넘겨버리기~
-> 변경의 유연함을 얻는 이점
폐쇄
기존 코드 (몸통)은 변경 안해도된다.
기능적인부분 (팔) 만 수정해주면되!!
참고자료
개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴(최범균 저)
메이플자쿰
'Old Posts > OOP' 카테고리의 다른 글
03. 리스코프 치환 원칙(Liskov Substitution Principle) (0) | 2018.03.28 |
---|---|
01. 단일 책임 원칙 (Single Responsibility Principle) (0) | 2018.02.27 |
00. 알고리즘 문제로 OOP 이해하기.md (1) | 2018.02.27 |