본문 바로가기

캡슐화

객체가 자율적이면 뭐가 좋을까 객체 지향 패러다임의 핵심은 상속이 아니라 자율적인 객체들끼리의 협력이다. 여기서 자율은 어떻게 나오는 것일까. 캡슐화와 자율성 객체의 자율성은 객체의 외부와 내부를 판가름하는 데에서부터 나온다. 우선 객체A는 자신의 프라이버시를 외부로부터 지키기위해 (간섭하거나 접근할 수 없도록) 차단해야한다. 객체 외부B는 접근이 가능한 수단을 통해서만 해당 객체A와 협력을 맺을 수 있다. 이 협력을 통해 객체 B는 객체 A 가 무엇을 수행하는지는 알 수 있지만, 어떻게 수행하는지에 대해서는 객체 A의 프라이버시이므로 알 필요가 없다. 우리는 이것을 객체(A)의 캡슐화=정보은닉이라고 부른다. 응답과 요청, 협력 발생 캡슐화를 통해 객체의 자율성을 확보하는 이유는 무엇일까. 객체는 자기자신을 주체적으로 변경할 수 있어.. 더보기
[클린코드 완독하기] Chapter 08 모호한 경계를 구분짓기 Chapter 08. 모호한 경계를 구분짓기 01 경계 오픈소스, 라이브러리를 안쓰는 프로젝트는 없다. 우리가 만든 코드에 외부에서 들어온 코드를 병합해야한다. 외부 코드는 외부에서 만든 코드인데, 외부 시스템과 호출하거나 단순히 외부에서 만들어진 코드일 수 있다. 우리 코드와 외부 코드를 깔끔하게 통합시키기 위해 경계를 잘 지어야 한다. 02 경계 짓기 (1) 우리 코드를 보호하기 캡슐화 (Encapsulation) 📍 객체의 실체 구현을 외부로부터 감추는 방식 📍 Sensor를 관리해야 한다. Sensor는 외부에서 사용된다. Sensor Id와 Sensor 객체로 저장하고 싶어서, Map을 사용한다. 하지만 Map을 그대로 사용하면 Map이 가진 clear()가 외부로 노출된다. Sensor의 '외.. 더보기