처음부터 시작합시다. 우선, 추상화 란 무엇입니까?
문제 / 동기
프로그래밍 할 때 종종 매우 구체적인 문제를 해결해야합니다.
추상화의 주된 동기는 프로그램이 전체 문제를 단일 단위로 처리하는 상황에서주의를 기울이고 이해해야하는 많은 별개의 작은 특성이있는 상황에 처할 수 있다는 것입니다. 여기서 문제는 인간이 한꺼번에 엄청난 양의 데이터를 처리하기 어렵다는 것입니다.
해결책 : 추상화
당신이 할 수 있기 위해서는 당신이 당신의 아이디어를 구현하기 위해해야 할 일은 단지 이해 , 당신은 추출 상세한 솔루션 으로 단순화 된 추상화를 .
예를 들어, SQL이 오브젝트로 추상화되는 ORM (Object-Relational Mapping)을 보자.
추상화없이 데이터베이스에 새 항목을 삽입하려면 프로그래머가 SQL을 알아야합니다. 따라서 새 항목을 삽입하려면 프로그래머가 새 항목을 테이블에 삽입하기위한 SQL 구문을 기억해야합니다.
INSERT INTO Items (field1, field2) VALUES (value1, value2)
그러나 추상화를 통해 프로그래머 는 자신이하고 싶은 일 에 대한 아이디어 만 알면됩니다. 객체 지향 추상화는 다음과 같습니다.
Item item = new Item(value1, value2)
조금 더 나아가서 SQL 자체가 수많은 정교한 데이터 저장 구조와 알고리즘에 대한 거대한 추상화라는 사실에 대해 생각할 수 있습니다.이 데이터는 간단한 선언적 언어를 배우는 데 도움이됩니다.
추상화의 반대
우리는 이제 정의 된 내용에 따라 추상화는 정말로 단지 손의 전형적인 개념을 알고 충분한 만들기에 대한, 우리는 쉽게 반대 있음을 추론 할 수 추상화는 사실에 esoterica , 어디에 사용 또는 전문 지식의 일종을 가지고 이해를 수반한다 피험자의 특성.