캡슐화 란 무엇이며이를 구현하는 세 가지 기술 (협회, 집계 및 구성)에 대한 많은 이론을 살펴 보았습니다.
내가 찾은 것은 :
캡슐화
캡슐화는 클래스의 필드를 개인용으로 만들고 공용 메소드를 통해 필드에 대한 액세스를 제공하는 기술입니다. 필드가 개인용으로 선언되면 클래스 외부의 사용자가 필드에 액세스 할 수 없으므로 클래스 내의 필드가 숨겨집니다. 이러한 이유로 캡슐화를 데이터 숨기기라고도합니다.
캡슐화는 코드와 데이터가 클래스 외부에 정의 된 다른 코드에 의해 무작위로 액세스되는 것을 방지하는 보호 장벽으로 설명 할 수 있습니다. 데이터와 코드에 대한 액세스는 인터페이스에 의해 엄격하게 제어됩니다.
캡슐화의 주요 이점은 코드를 사용하는 다른 사람의 코드를 손상시키지 않고 구현 된 코드를 수정할 수 있다는 것입니다. 이 기능을 통해 Encapsulation은 코드의 유지 관리 성, 유연성 및 확장 성을 제공합니다.
협회
연결은 모든 개체에 고유 한 수명주기가 있고 소유자가없는 관계입니다. 교사와 학생의 예를 들어 봅시다. 여러 학생이 단일 교사와 연결할 수 있고 한 학생이 여러 교사와 연결할 수 있지만 개체간에 소유권이 없으며 둘 다 자체 수명주기가 있습니다. 둘 다 독립적으로 만들고 삭제할 수 있습니다.
집합
집계는 모든 개체에 고유 한 수명주기가 있지만 소유권이 있고 자식 개체가 다른 부모 개체에 속할 수없는 특수한 형식의 연결입니다. 부서와 교사의 예를 들어 봅시다. 단일 교사는 여러 부서에 속할 수 없지만 부서를 삭제해도 교사 개체는 삭제되지 않습니다. 우리는 이것을“하스-아”관계라고 생각할 수 있습니다.
구성
컴포지션은 다시 집계의 특수한 형태이며이를 "죽음"관계라고 부를 수 있습니다. 강력한 집계 유형입니다. 자식 개체에는 수명주기가 없으며 부모 개체가 삭제되면 모든 자식 개체도 삭제됩니다. 집과 방의 관계에 대한 예를 다시 살펴 보겠습니다. 집은 여러 개의 방을 포함 할 수 있지만 방의 독립적 인 수명은 없으며 어떤 방도 두 개의 다른 집에 속할 수 없습니다. 우리가 집을 삭제하면 방이 자동으로 삭제됩니다.
질문은 ~이야:
이제이 모든 것이 실제 사례입니다. 실제 클래스 코드에서 이러한 기술을 사용하는 방법에 대한 설명을 찾고 있습니다. 내 말은 캡슐화를위한 세 가지 기술을 사용하는 지점이 무엇인지 , 이러한 기술이 구현 될 수있는 방법 과 어떻게 한 번에 적용 할 수있는 기술을 선택합니다.