예 !!!! 캡슐화가 일종의 고급 특정 범위 추상화 라고 말하면 ,
얼마나 많은 사람들이 내 대답을 읽거나 찬성했습니다. 내가 왜 이렇게 말하는지 파헤쳐 보자.
청구하기 전에 두 가지 사항을 확인해야합니다.
하나는 데이터 숨김이고 다른 하나는 추상화입니다.
데이터 숨김
대부분의 경우 내부 데이터에 대한 직접 액세스 권한을 부여하지 않습니다. 외부인이 내부 데이터에 직접 액세스 할 수없는 내부 데이터는 직접 내보내서는 안됩니다. 특정 개체의 내부 상태를 보호해야하기 때문에 보안에 관한 것입니다.
추출
단순화를 위해 내부 구현 숨기기를 추상화라고합니다. 추상화에서 우리는 필요한 것들에만 집중합니다. 기본적으로 우리는 추상화에서 "How to do"가 아니라 "What to do"에 대해 이야기합니다. 보안은 또한 "우리가 구현하는 방법"을 강조하지 않기 때문에 추상화를 통해 달성 할 수 있습니다. 구현을 변경할 수 있기 때문에 유지 관리가 향상되지만 최종 사용자에게는 영향을 미치지 않습니다.
저는 "캡슐화는 일종의 고급 특정 범위 추상화입니다"라고 말했습니다. 왜? 캡슐화를 데이터 숨김 + 추상화로 볼 수 있기 때문에
캡슐화 = 데이터 숨김 + 추상화
캡슐화에서는 외부인이 데이터를 볼 수 없도록 데이터를 숨겨야하며 데이터에 액세스하는 데 사용할 수있는 방법을 제공해야합니다. 이러한 메서드에는 외부 사람에게도 숨겨진 해당 항목 내부에 유효성 검사 또는 기타 기능이있을 수 있습니다. 그래서 여기서 우리는 접근 방법의 구현을 숨기고 있는데 이것을 추상화라고합니다.
이것이 제가 위와 같이 캡슐화가 일종의 추상화라고 말한 이유입니다.
그렇다면 차이점은 무엇입니까?
차이점은 단순성, 유지 보수성 및 보안을 위해 사용자로부터 무언가를 숨기는 경우 추상화가 일반적인 것입니다.
캡슐화는 내부 상태 (데이터 숨김)를 숨기고있는 내부 상태 보안과 관련된 특정 것이며, 데이터에 액세스 할 수있는 방법과 외부 사람 (추상화)에게도 숨겨진 방법 구현을 제공하고 있습니다.