개발하는 프로 국밥러
캡슐화?
아키텍처/OOP 2022. 9. 21. 07:06

캡슐화란, 변경 될 수 있는 것은 어떤것이라도 감춘다는 것이다. 이상적으로 캡슐화가 잘되어 있다고 말하는 설계는, 응집도는 높고 결합도는 낮다. 다른 말로는 확장에는 열려있고, 수정에 대해서는 닫혀있다.(개방 폐쇄 원칙, OCP) 각 객체들은 스스로 역할과 책임을 충실히 하기 때문에, 기능이 변경되어도 수정할 수 있는 부분을 최소한으로 할 수 있다. 즉, 캡술화의 핵심은 변경될 수 있는 부분은 외부로 최대한 노출시키지 않고 협력에 의한 인터페이스로(메시지)만 소통을 하는 것이다. 잘못된 예제 (너무 많은 참견을 하는 객체) 극장 이라는 클래스를 보자 관객이 초대권이 있냐 없냐에 따라서 분기되고 있으며 중요한 부분은 아래 코드다. Ticket ticket = ticketSeller.getTicketOffi..