짧은 대답 : 아닙니다.
긴 대답 : OOP는 단순하지 않기 때문에 "간단한 방법"이 없습니다. 절차 적 프로그래밍은 "변수"와 "만약 그렇다면"에 관한 것입니다. 다른 모든 것들은 구문 설탕이지만,이 네 가지는 모두 절차 적 프로그래밍에 관한 것입니다. 일단 당신이 그들을 얻을 아무것도 당신을 막을 수 없습니다.
OOP는 변수와 코드 조각을 구성하는 방법입니다. OOP를 정의하기 위해 몇 개의 패턴이 있습니까? 25? 30? 다른 언어와 배경에서 OOP를 배운 교사조차도 자체 정의에 동의하지 않으므로 어떻게 간단 할 수 있습니까?
네가 어떻게 왔는지 모르겠지만 네 엄마도 비슷한 경험을했기 때문에 내가 어떻게 왔는지 말해 줄 수있어
매우 큰 프로젝트에서 C로 프로그래밍했습니다. 많은 프로그래머들이 모듈과 라이브러리를 구성하는데, 다른 작업에서 간섭을 피하고 업무를 잘 분리하는 데 어려움이 있습니다.
우리는 모든 상호 관련된 전역 데이터를 구조체에 넣고 구조체에 콜백이 필요한 함수 포인터를 배치하는 "솔루션"에 도달했습니다. 우리는 그런 방식으로 io_mask
(텍스트 모드 대화 상자 graphic_manager
등) 등을 일반화했습니다 .
1996 년에 이러한 구조체의 이름을 "클래스"로 지정하고 해당 함수 포인터를 멤버 함수 및 가상 함수로 대체했거나 이전 프로젝트를 갱신 한 다른 프로그래머가 다른 개체 (동작이라고 함)로 연결 한 것을 쉽게 알 수있었습니다.
분리, 다형성 및 런타임 정의 동작과 같은 필요성 을 느끼기 시작할 때 OOP를 이해하기 시작했습니다 .
오늘 나는 OOP와 함께 일하지만, 그것을 설명하는 교리로 생각하지 않습니다. 단지 "일반적인 관용구"(집합 ...)는 우리가 항상 긴 설명과 설명을 제공 할 필요없이 함께 말할 수있게합니다. . 사실, 다른 것보다 더 많은 "컨벤션". 결국, 모든 OOP는 "다시-"이면 "다중 계층화"를 수행합니다. 따라서 관용구에 대한 추상화와 관용구.
그들을 무시하라. 그녀는 그들이 필요하다고 느끼지 않을 때까지 설명조차하지 않습니다. 그녀는 그것들을 단순한 일을하는 복잡한 방법처럼 느낄 것입니다. 그리고 그녀는 옳습니다 ... 그녀가하는 일이 실제로는 단순 할 때까지.
맨 위에 네 가지가 있다면 아무도 "책상 정리"를 생각하지 않을 것입니다. 맨 위에있는 물체가 서로 간섭하기 시작하면 이치에 맞습니다. 이제 OOP가 시작될 때입니다.
C ++로 작업하기 위해 OOP가 필요하지 않습니다. 전체 C ++ 표준 라이브러리는 OOP 측면에서 설계되지 않았으며 (협력 가능하지만) C ++은 Java가 아닙니다.
내 경험상 최악의 C ++ 교사와 C ++ 프로그래머는 Java에서 온 사람들이며 모든 것에 대한 모든 편견은 OOP가 아니며 C ++과 같은 언어를 변질시키는 것은 OOP가 아닙니다.
C ++ : Accelerated C ++ 에 접근하고 싶은 사람들에게 좋은 책을 제안 해 드리겠습니다. 사전 정의 된 교리를 따르지 않고 C ++ 숙어로 안내합니다.