델파이 객체지향 프로그래밍 아이디어
리우 이주
머리말
내가 처음 델파이를 알게 된 것은 볼랜드의 델파이 소프트웨어 때문이 아니라 플라톤의 고전 작품인 플라톤의 대화(Plato's Dialogues)에서 그 단어를 읽었기 때문이다.
내 친구가 에 갔다.
델포이는 예언의 신인 신탁이 사는 곳이다. 『플라톤의 대화』에는 소크라테스의 친구가 가장 현명한 사람인 예언의 여신 피티아누스에게 물으러 델포이로 갔다고 기록되어 있다. 피티아인들은 소크라테스보다 더 현명한 사람은 없다고 말했습니다. 소크라테스는 자신이 정치인, 시인, 철학자, 예술가들에게 둘러싸여 있다는 사실을 깨닫고 몹시 당황했습니다. 이 "전문가"와 "당국"이 더 현명하지 않습니까? 나는 그들보다 훨씬 더 나쁩니다.
소크라테스는 이들 '전문가'와 '권위자'를 하나씩 방문했지만 그들이 독선적이고, 자신을 속이고, 이해하지 못하는 것을 아는 척하는 경우가 많다는 사실을 발견했다. 방문을 통해 소크라테스는 자신이 여러 측면에서 아는 것이 거의 없다는 사실도 발견했습니다. 그러나 소크라테스는 이해하는 척하지 않고 자신의 무지를 고백했습니다. 이것이 바로 예언의 여신 피티아누스가 진정한 '지혜'라고 부르는 것입니다.
사실 이런 종류의 지혜는 고대 그리스인들이 처음 제안한 것이 아닙니다. 소크라테스보다 훨씬 이전에 우리나라의 노자가 이미 정리한 바가 있다. 『도덕경』에는 “남을 아는 사람이 현명하고, 자기를 아는 사람이 현명하다”는 말이 있다.
이제 우리가 사용하는 델파이는 이미 훌륭한 프로그래밍 언어이자 소프트웨어 개발 도구입니다. 그러나 심오하고 지속적으로 발전하는 델파이에 직면하여 우리는 여전히 많은 측면에 대해 거의 알지 못합니다. 그런데 델파이를 배우고 사용할 때 우리도 소크라테스의 자기인식 태도와 모든 것을 아는 지혜를 갖게 되는 걸까요?
델파이를 선택하는 친구들이 많습니다. 처음에는 델파이가 강력하고, 배우고 사용하기 쉽기 때문일 것입니다. 그들은 심지어 3개월 만에 델파이를 능숙하게 다룰 수 있다고 주장했고, 반년 만에 감히 독자적으로 소프트웨어를 개발하기도 했습니다. 실제로 그들이 할 수 있는 일은 컨트롤을 드래그 앤 드롭하는 것뿐입니다. 그들이 자신의 프로그램에 도취되면 실제로는 델파이의 절묘한 지혜와 다른 사람들의 통제에 도취된 것입니다. 이러한 종류의 Delphi 프로그래머는 종종 다른 사람들에 의해 "미루는 사람"이라는 별명을 갖습니다. 하지만 그들은 스스로를 델파이의 대가라고 여기는 것 같습니다.
델파이를 포기한 친구들도 많습니다. 처음 생각은 델파이가 VB와 비슷한 RAD 도구일 뿐이라고 생각했기 때문일 수도 있습니다. 그들의 관점에서 Delphi는 단지 제어 프로그래밍일 뿐이며 C++나 Java와 같은 OOP를 실제로 구현할 수는 없습니다. 델파이가 객체지향 프로그래밍 언어의 특성을 갖고 있는지, 다형성이나 패턴 등 객체지향 기술을 구현할 수 있는지 의심스럽다. 그들의 눈에는 C++이나 Java를 사용하는 사람만이 진정한 마스터입니다.
그렇다면 진정한 스승이란 무엇이며, 어떻게 스승이 될 수 있습니까?
먼저 무술 고수가 무엇인지 살펴 보겠습니다. 어쩌면 영감을 얻을 수도 있습니다.
무술이나 무술소설을 좋아하는 사람이라면 무술을 수련하는 데에는 외부 수련과 내부 수련이라는 두 가지 방법이 있다는 것을 알고 있을 것이다. 주먹, 발차기, 무기의 외부 훈련, 주먹과 발차기 및 무기의 질이 핵심입니다. 기의 내부 훈련, 기 정화 훈련, 정신 훈련 및 약점 회복이 기초입니다. 이 두 재배 방법의 가장 큰 차이점은 그림 1에서 볼 수 있듯이 시간과 기술의 기능적 관계에 있습니다. 평신도의 말로 말하면, 처음 3년 동안은 외부 기술을 수행하는 사람이 내부 기술을 수행하는 사람을 쉽게 이길 수 있고, 10년차에는 외부 기술을 어떻게 수행하든 양측이 동점을 이룰 수 있습니다. 내부 기술을 연습하는 사람들과 경쟁할 수 없습니다. 20년 후, 내공의 달인은 세상에서 무적이다. 그 이유는 '기'와 '기'의 변증법적 관계에 있습니다.
"무기"는 유형의 물체이며 검, 총, 검 및 미늘창은 모두 유형의 무기입니다. 야외에서 무술을 수행하는 것은 이러한 유형의 무기와 불가분의 관계에 있습니다. 그러므로 총과 검을 사용하는 무술 고수들은 무기의 품질에 의존하는 경우가 많습니다.
"기"는 눈에 보이지 않는 물질이며, 모든 지혜, 마력, 생각은 모두 눈에 보이지 않는 물질입니다. 기공 수련은 이러한 무형의 특성과 불가분의 관계에 있습니다. 따라서 진정한 무술 고수는 특정한 무기에 의존할 필요가 없는 경우가 많습니다. 그들에게는 어떤 유형의 물건이라도 정신에 따라 무기로 변형될 수 있습니다. 손에 들고 있는 부채나 파리채는 기(氣)를 얻기 때문에 명창이나 검과 같은 위력을 발휘한다.
그림 1 두 가지 재배 방법의 시간 및 기술 함수 다이어그램
소프트웨어 개발에서 프로그래밍 도구는 "도구"이고 프로그래밍 아이디어는 "qi"입니다.
프로그래밍 도구 중에는 VB 및 PB와 같은 사용하기 쉬운 도구, FORTRAN 및 COBOL과 같은 사용하기 어려운 도구 및 Java 및 C#과 같은 최신 도구가 있습니다.
프로그래밍 사고에는 객체지향과 프로세스지향이 있는데, 이는 세계관이자 방법론입니다. 전자는 사람들이 객관적인 객체에 대해 생각하는 방식을 반영하고, 후자는 기계가 명령에 대해 생각하는 방식을 반영합니다. 지속적인 소프트웨어 개발 실천에서 전자의 우수성은 지속적으로 반영되고 확인되었습니다.
객체 지향 프로그래밍 아이디어를 익히는 것은 Qi 훈련의 진정한 의미를 얻는 것과 같습니다. 그 중요성은 종종 프로그래밍 언어 선택보다 중요합니다!
객체 지향 도구를 선택하더라도 진정한 마스터가 될 수는 없습니다. 왜냐하면 그가 중시하는 것은 '기'의 질이고 '기'의 배양을 무시하기 때문입니다.
사실, "시스템이나 언어가 객체 지향인지는 중요하지 않습니다. 중요한 것은 그것이 어떻게 객체 지향이 될 수 있는지, 그리고 관련된 이점을 얻기 위해 어떤 방법을 사용하는지입니다." ("객체 지향 방법: 원리와 실제" 기계 산업 출판사, 2003년 3월)
무기를 익히기는 쉽지만 마스터가 되기는 어렵습니다. 기수련은 좋지만 결과는 느리고 외로움은 견딜 수 없다. 보통 사람들이 자신의 마음을 명확히 이해하고 올바른 길을 가는 것은 불가능하다. 따라서 많은 무술 고수들은 먼저 무기를 연습한 다음 기(氣)를 연습하여 성공을 달성합니다.
무술계에 입문한 초보자들에게는 무기의 힘을 활용하여 내부적인 힘의 부족함을 보완해야 하는 경우가 많습니다. 무기의 품질은 매우 중요합니다. 그러나 무술이 발전하고 내면의 힘이 발달할수록 무기에 대한 의존도는 낮아져야 한다. "콘도르 영웅전설" 양궈는 처음 검술을 배울 때 날카로운 검을 사용하는 것을 좋아하고 검술에 능숙한 후에는 둔검을 사용하는 것을 좋아합니다. 검으로 사용됩니다. 따라서 실제 마스터에게는 검의 품질이 중요하지 않은 경우가 많습니다.
마찬가지로 소프트웨어 마스터의 성장도 이런 과정을 거친다. 프로그래밍 초보자는 관심을 자극하고 자신감을 높이면서 절반의 노력으로 두 배의 결과를 얻을 수 있는 좋은 언어를 선택해야 합니다. 언어에 익숙해지면 이를 객체 지향 프로그래밍 아이디어를 마스터할 수 있는 기회로 활용해야 합니다. 이때 여러분에게 친숙한 것은 더 이상 언어 자체의 문법, 함수, 클래스 라이브러리가 아니라 바인딩, 다형성, 패턴 등과 같은 사고방식을 비유적으로 학습하면 어렵지 않습니다. 다른 객체 지향 언어. 내면의 기술을 열심히 연마하고, 실천할 용기가 있으며, 궁극적으로 성공하는 진정한 소프트웨어 마스터는 프로그래밍 언어에 국한되지 않습니다. 그들은 개발 도구에 익숙할 수도 있지만 그것은 그들의 눈에 보이지 않는 정신을 전달하는 도구일 뿐입니다. 그들은 개방적이고, 배우고 싶어하며, 요약하는 데 능숙합니다. 그들의 아이디어, 방법, 모델, 심지어 철학까지 프로그래밍 언어를 초월할 뿐만 아니라 프로그래밍 언어 실행을 안내할 수도 있습니다.
델파이는 내부적으로나 외부적으로 소프트웨어 마스터의 성장을 위한 지름길을 제공합니다. Delphi를 배우고 연습할 때 RAD와 컨트롤의 장점을 활용하여 이제 막 시작하는 경우 상대를 빠르게 물리칠 수 있습니다. Delphi를 배우고 연습할 때는 OOP 기능과 VCL의 강점, 그리고 강력한 기능을 활용할 수도 있습니다. 무적의 성공을 달성하기 위해 베이컨을 사용합니다.
세계적으로 유명한 화산 검파는 한때 "검파"와 "기파"로 나뉘었습니다. 전자는 무기를 연습하고 기술을 가르쳤습니다.
델파이를 배우는 것은 화산 검술을 연습하는 것과 같습니다. RAD의 길을 가는 것이 "소드 마스터"이고, OOP에서 시작하는 것이 "에어 마스터"입니다. 전자는 컨트롤 사용을 좋아하고 이상한 기술과 트릭에 관심이 있고 후자는 객체를 좋아하고 메소드 패턴에 관심이 있습니다. 전자는 빠른 결과를 추구하는 반면, 후자는 높은 열망을 갖고 있습니다.
RAD 때문에 델파이를 선택하거나 OOP 때문에 델파이를 포기하는 친구들은 델파이를 제대로 이해하지 못하는 것 같아요. Delphi는 좋은 RAD 개발 소프트웨어이지만 OOP를 배우고 VCL에 깊이 들어가지 않으면 진정한 마스터가 되기는 어렵습니다. 마찬가지로, Delphi는 Delphi의 강력한 RAD 및 효율적인 컴파일러와 결합된 진정한 OOP 프로그래밍 도구로, 다른 OOP 언어보다 더 많은 장점과 더 높은 효율성을 가질 수 있습니다. 종파적 견해에서 벗어나 "qi"와 "qi"를 함께 연습하고 내부 및 외부 기술을 모두 연습할 수 있다면 델파이 프로그래머가 RAD 퀵키에서 OOP 마스터로 성장하는 것은 어렵지 않을 것이라고 믿습니다. 결국 세상을 자랑스러워하고 세상을 지배하게 됩니다.
앞서 나는 "기"와 "기"의 변증법적 관계에 대해 간략하게 논의했습니다. 프로그래밍에서 내면의 힘을 키우고 향상시키는 열쇠 중 하나는 객체 지향 프로그래밍의 개념을 익히는 것입니다. 사실 저는 객체지향 프로그래밍의 사상이 길의 보이지 않는 진실의 아름다움과 가장 부합한다고 생각합니다.
왜 그런 말을 합니까? "고대의 위대한 변혁은 보이지 않는 것에서 탄생한다"("Guiguzi"의 두 번째 반응). 기의 신비는 먼저 그것의 "대 변혁"에 있다. 대전환은 창조와 변화의 모든 힘을 모아 천지의 대창조이다. 객체 지향 프로그래밍 사고에는 이러한 특성이 있습니다.
노자는 “이름 없는 천지의 시작, 이름 없는 만물의 어머니”라고 말했다. 소위 객체지향적 사고방식에서 가장 신비한 것은 '이름이 없는' 것에서 객체를 식별하고 정의하는 방법과 '이름이 있는 것'에서 객체를 구성하고 사용하는 방법입니다.
소프트웨어 개발자에게 있어서 객관적인 개체를 이해하고 사용자의 요구를 분석하고 설계하는 과정은 바로 객체를 발견하고 정의하는 과정이며 무명에서 유명으로 나아가는 과정입니다. 그러나 여기서 객체는 프로세스 지향 프로세스의 변수나 함수와 다릅니다. 객체는 클래스에 의해 생성되며, 정의 가능한 "이름"이며 객체의 어머니입니다.
그 결과 태극권은 양의를 낳고, 양의는 계급의 계승과 파생을 통해 만물이 태어나고 체계가 형성된다.
객체 지향 프로그래밍 도구인 "도구"조차도 객체 지향 프로그래밍 아이디어의 "qi"를 구현하고 전달합니다.
『영원연금경』으로 알려진 내기 수련의 고전 『주일신통기』의 서문 첫 문장은 “건과 곤은 이의 문이요 만물의 부모이다”이다. 헥사그램. 운동 허브의 주축인 칸리광궈(Kan Li Kuang Guo), 여성 뮤(Mu)의 4개 헥사그램은 "푸(Pu)"로 생각됩니다.
소프트웨어 개발의 관점에서 볼 때 객체 지향 프로그래밍 도구는 무한한 종류의 소프트웨어 시스템을 구축할 수 있는 가능성을 제공하지만 이 무한성은 자체 클래스 라이브러리의 제한된 프레임워크를 기반으로 합니다. Delphi의 VCL, Java의 클래스 라이브러리, .net 프레임워크 등 모두 Zhouyi Bagua와 유사한 구조를 기반으로 구축되었습니다. "태극권은 쉽습니다. 태극권은 두 가지 형태를 만들고, 두 가지 형태는 네 가지 이미지를 만들고, 네 가지 이미지는 팔괘를 만듭니다." 이 구조는 완벽하고 무한한 창의성을 가지고 있습니다.
Taiji는 Delphi의 TObject이며 구축 시스템의 원자이자 모든 클래스의 조상이며 모든 클래스의 기본 특성을 가지고 있습니다. Delphi 프로그래밍 세계에서 루트 클래스 TObject는 영속 객체 클래스 TPersistant를 생성하고 영속 객체 클래스 TPercious는 애플리케이션 개발을 위한 풍부한 컨트롤과 강력한 기능을 제공하는 구성 요소 객체 클래스 TComponent를 생성합니다.
그러나 클래스 라이브러리의 구조적 프레임워크는 "도구"로 사용할 수 있는 구성 요소를 제공할 뿐만 아니라 더 중요한 것은 이 구조가 클래스 간의 관계 및 관련 기능을 통해 "qi"의 구성 및 변경을 실현한다는 것입니다. 지향 프로그래밍 사고의 본질. 우리 자신의 시스템을 만들 수 있는 훌륭한 데모를 제공합니다.
기의 두 번째 미스터리는 "보이지 않는 기원"에 있습니다. 비가시성은 자유, 개방성 및 적응성을 의미합니다. 객체 지향 프로그래밍의 아이디어는 "기"의 보이지 않는 지혜로 가득 차 있습니다.
예를 들어, 객체 지향 프로그래밍의 다형성을 통해 프로그래머는 보다 다양하고 개방적인 프로그램을 작성할 수 있습니다. 프로그래머는 Vehicle 객체에 대한 순수 가상 추상 메서드 Stop()을 작성할 수 있습니다. 이러한 범용 Stop() 메서드는 자동차를 운전하는 것과 아무 관련이 없습니다. 프로그래머는 파생 클래스가 stop() 메서드 완료에 대해 걱정하도록 하고 더 높은 추상화 수준에서 자체 일반 프로시저를 계속 작성하도록 할 수 있습니다. Car 객체의 stop() 메소드가 Bicycle 객체의 stop() 메소드와 완전히 다르더라도 프로그래머는 Vehicle.stop()을 사용할 수도 있습니다. 다형성을 사용하면 생성된 객체가 어떤 적절한 메소드가 호출될지 자동으로 알 수 있습니다. . 이로 인해 프로그램은 "qi"의 개방성과 적응성을 갖게 됩니다.
기공을 닦을 때 “우위의 덕은 무위(無爲)이니 관찰하여 구하지 아니하며, 낮은 덕은 행하되 그 쓰임이 무궁하니라”고 강조한다.
객체 지향 프로그래밍의 사고에서 "Shangde"는 후기 바인딩 순수 가상 추상 방법, 변경되지 않고 끊임없이 변화하는 변화에 적응하는 객체 인터페이스, 사물에 대한 높은 수준의 추상화이며 형이상학입니다. . "Shangde Wuwei"는 추상적인 수준에서 프로그래밍의 "가상" 측면이 비활성을 통해 반영된다는 것을 의미합니다. 왜냐하면 이 때 실제로 사용되는 실제 객체는 확인할 수 없기 때문입니다(Car 객체 또는 Bicycle 객체일 수도 있고, 나중에 발명될 수 있음) 새로운 차량 객체), "관찰에 기반하지 않음"은 특정 요구의 제약에서 벗어나 특정 구현 코드를 고려하지 않도록 요구합니다. 따라서 순수 가상 추상 메서드나 개체 인터페이스에는 코드 구현이 없습니다.
객체 지향 프로그래밍에서 "Xiaode"는 순수 가상 추상 메소드의 범위와 객체 인터페이스의 구현을 의미합니다. "Do it with 도덕성"은 실제 코드 구현을 제공합니다. 끊임없이 변화하는 요구를 충족시키기 위해 "끝없이 사용됩니다".
다형성을 통해 프로그래머는 나중에 많은 노력을 들이지 않고도 객체를 파생하고 프로그램을 구현할 수 있습니다. 프로그래머가 자동차와 자전거용 애플리케이션을 구축하고 있는데 트럭이 존재한다는 사실을 모르더라도 상관없습니다. 프로그래머는 Vehicle 클래스를 상속하는 Car 및 Bicycle 클래스에 대해 재정의 stop() 메서드를 작성할 수 있습니다. 이런 방식으로 프로그램에서는 생성된 Car 및 Bicycle 객체를 Vehicle 유형으로 변환하고 Vehicle의 Stop() 메서드를 사용하는 한 Car 및 Bicycle 객체를 stop()에 동적으로 바인딩할 수 있습니다. 자신의 요구 사항을 충족하는 방법입니다. 나중에 Truck 객체를 추가하더라도 Vehicle의 Stop() 메서드는 계속 호출되므로 프로그램을 더 이상 변경할 필요가 없습니다.
만물은 자연스럽고 만물은 합쳐지고 분리된다. 어떤 것은 가까이 있어도 볼 수 없고, 어떤 것은 멀리 있어도 알 수 있고, 가까이 있어도 볼 수 없는 것은 알 수 없고 멀리 있는 것은 보일 수 있다. , 하지만 미래에는 볼 수 있습니다." ("Guiguzi") 네 번째 도착)
객관적인 것은 복잡하고 사용자의 요구는 변하지만, 특정한 고유 법칙도 있습니다.
가까이 있지만 눈에 보이지 않는 사람들은 눈앞에 있는 특정 기능의 구현만 바라보고 사물의 일반적인 발전 법칙을 관찰하지 않습니다. 그들은 마음 속에 고립된 데이터와 기계적 프로세스만 갖고 있을 뿐입니다. 방심하고 대처하기가 어려워집니다. 이러한 프로그래밍은 정적이고 기계적이며 유지 관리 및 확장이 어렵습니다.
멀리서 볼 수 있는 사람은 패턴을 발견하고, 코드 재사용을 중시하며, 유기체와 조화로운 관계를 보는 데 능숙하며, 요구 사항이 바뀌더라도 침착하고 쉽게 대처할 수 있습니다. 이러한 프로그래밍은 동적이고 유연하며 유지 관리 및 확장이 가능합니다.
Paul Kimmel은 "Delphi6 애플리케이션 개발 가이드"에서 "객체 지향 도구를 객체 지향이 아닌 방식으로 사용하는 것은 실수입니다. Delphi를 사용하여 구조화된 프로그램을 작성하면 베타 버전에 빠르게 도달할 수 있습니다. 여러분의 프로그램은 결코 베타 버전에서 벗어날 수 있습니다. 잘못된 답을 빨리 얻으더라도 여전히 틀립니다.”
또한 Delphi를 사용하면 객체 지향 프로그래밍 아이디어가 없으면 "무슨 말을 하는지 알아차리지 못하는" 것과 같을 것이며 결국 여전히 "가깝지만 보이지 않는" 상태가 되어 훌륭한 시스템을 개발하기가 어려울 것입니다. 열심히 연습하고, 신중하게 요약하고, 객체 지향 프로그래밍의 광범위하고 심오한 아이디어를 터득해야만 "기"를 자유롭게 제어하고 "배운 것과 배운 것을 뒤집을 수 있으며" 마침내 상태에 도달할 수 있습니다. "멀리 있는 것을 아는 것".
최초의 진정한 객체 지향 언어인 Smalltalk(1972)가 등장한 지 30년이 넘었습니다. 그런데 서점에 파는 객체지향 프로그래밍 서적은 대부분 C++와 자바 이 두 가지밖에 없는 것 같습니다. 실제로 객체지향 언어는 기본적으로 4가지 종류가 있고 종류도 거의 20가지에 가깝습니다. . 델파이 객체 지향 프로그래밍에 관한 책이 거의 없기 때문에 많은 프로그래머는 OOP를 배우기 위해 델파이를 포기해야 합니다. 이것은 정말로 델파이의 큰 비극입니다. Bruce Eckel의 "Thinking in Java"를 읽었을 때 왜 이런 델파이 걸작이 없는지 한탄했습니다.
실제로 Delphi는 잘 알려진 제품군에서 탄생했으며 Object Pascal을 기반으로 Borland Company에서 개발했습니다. 이제 Borland Company는 Delphi7부터 Object Pascal [1]을 대체하기 위해 Delphi 언어를 사용합니다. 실제로 Delphi는 OOP 측면에서 C++ 및 Java보다 열등하지 않습니다. 독자는 이 책의 부록 "객체 지향 프로그래밍 언어: Java, C++ 및 Delphi"를 참조할 수 있습니다.
이를 위해 나는 항상 델파이 객체지향 프로그래밍에 대한 나의 학습과 실제 경험을 요약하기 위해 델파이 객체지향 프로그래밍에 관한 책을 쓸 계획이었습니다. 그러나 이것은 매우 어려운 작업이다. 책 전체가 구상부터 집필까지 오랜 시간이 걸렸고, 올해 5월이 되어서야 정식으로 완성되었다. 공교롭게도 올해는 볼랜드 창립 20주년이 되는 해이기도 하다. 볼랜드 제품 델파이(Delphi)의 사용자로서 나의 책 출간은 이를 기념하는 일이라고 할 수 있다.
이 책은 델파이의 객체지향 프로그래밍만을 순수하게 논하는 책입니다. 객체지향은 이 책의 유행을 장식하는 것이 아니라 이 책의 핵심이자 전체입니다.
이 책은 1장 '새로운 객체지향 사고의 구축'부터 시작하여 객체지향 프로그래밍의 역사와 현재 상황을 시작으로 객체지향 프로그래밍 아이디어의 기원과 발전, 기본 개념은 물론 응용까지 설명하고 있다. 객체지향 모델링 방법과 UML. 이 장에서는 독자들이 객체지향의 기본 개념을 확립하고 객체지향 사고방식을 이해하도록 돕는다.
2장 "델파이 객체 모델"에서는 델파이 객체지향 프로그래밍의 기본 지식과 객체 모델 구조 시스템을 소개합니다.
3장 『객체의 이해』에서는 사물의 본질, 삶과 죽음, 관계의 세 가지 측면에서 사물의 내부 메커니즘, 생애주기, 상호작용을 심도 있게 논함으로써 독자가 사물을 이해하고 숙달할 수 있는 기반을 마련한다.
4장 "객체 사용"에서는 Delphi 객체 지향 프로그래밍에서 객체를 효율적으로 사용하는 방법을 설명합니다. 여기에서는 인터페이스 개체, 구성 요소 개체, 개체 세트 및 개체 매개 변수의 사용 방법 및 기술에 중점을 두고 VCL 구성 요소의 사용 및 개발에 있어 공통적인 문제에 대해 심층적인 사고를 수행합니다.
5장, '심층 다형성'에서는 다형성의 개념과 프로그래밍에서의 적용을 소개합니다. 수많은 예제를 통해 오버로딩과 덮어쓰기, 가상 메소드와 동적 메소드, 추상 클래스와 추상 메소드, 클래스 유형 변환 등 중요한 개념과 사고 방식을 설명합니다.
6장 "인터페이스 분석"에서는 객체 인터페이스의 프로그래밍 지식과 응용 기술을 포괄적으로 소개합니다. 동적 바인딩과 다중 상속을 구현하는 데 있어 인터페이스의 중요한 역할을 설명하고 객체 지향 프로그래밍에서 인터페이스의 실제 사용을 보여줍니다.
7장 '캡슐화에 관한 연구'에서는 객체지향 프로그래밍에서 캡슐화의 중요성과 응용 원리를 밝히고, 논리적 캡슐화와 물리적 캡슐화의 관점에서 캡슐화의 구현 방법과 응용 기법을 각각 논의한다.
8장 "인터페이스와 비즈니스 분리 실현"에서는 객체 지향 프로그래밍을 새로운 수준으로 적용합니다. 이 장에서는 인터페이스와 비즈니스 분리의 혁신적인 예를 통해 객체지향 설계를 사용하여 데스크탑 프로그램을 분산 다중 계층 시스템으로 진화시키는 방법을 설명합니다. Delphi의 최신 웹 기술을 통합하여 웹 서비스를 사용하여 비즈니스 객체를 캡슐화하는 방법, Web Form을 사용하여 인터페이스 객체를 캡슐화하는 방법, 새로운 기술을 사용하여 기존 객체를 캡슐화하는 방법을 소개하여 크로스 플랫폼 애플리케이션을 실현합니다.
마지막으로 이 책의 9장과 10장 "VCL 심층 입문"에서는 VCL의 내부 메커니즘을 연구하고 VCL의 중요한 범주에 대한 객체 사용을 분석하여 프로그래밍 수준을 향상시키고 싶은 독자들에게 참고 자료를 제공합니다. 깊이.
이 책의 구성을 보면 다섯 부분으로 나눌 수 있다.
이 책의 첫 두 장은 델파이 객체 지향 프로그래밍을 소개하는 1부입니다. 이미 객체 지향의 기본 개념을 숙지하고 델파이 프로그래밍 경험이 있는 독자라면 이 두 장을 건너뛰어도 됩니다.
2부, 3장과 4장은 Delphi의 객체 지향 프로그래밍의 핵심입니다. 사물의 본질을 파악하지 못하면 사물을 잘 활용할 수 없습니다.
3부, 5장과 6장은 Delphi의 객체 지향 프로그래밍에 대한 심층적인 소개입니다. 고급 객체지향 기술은 모두 가상 메소드, 추상 메소드, 객체 인터페이스와 같은 동적 바인딩 메커니즘과 상향 변환, 하향 변환, 인터페이스 변환과 같은 유형 변환 메커니즘을 기반으로 합니다.
4부, 7장과 8장은 Delphi 객체 지향 프로그래밍의 응용 프로그램입니다. 프로그램 유지 관리성, 확장성 및 재사용성을 달성하기 위해 캡슐화는 객체 지향 프로그래밍의 중요한 아이디어 중 하나가 되었습니다. 캡슐화를 통해 인터페이스와 비즈니스 객체가 분리되고, 인터페이스와 비즈니스의 분리에서 점진적으로 분산형 다계층 아키텍처가 구현되어 인터페이스와 비즈니스 애플리케이션의 크로스 플랫폼이 구현됩니다. 여기에서는 객체 지향 프로그래밍 아이디어를 기반으로 하는 일반 응용 프로그램부터 엔터프라이즈 수준 응용 프로그램까지의 솔루션을 보여줍니다.
9장과 10장을 마무리하는 5부에서는 Delphi의 객체 지향 프로그래밍에 대한 참조입니다. VCL에 대한 친숙함과 VCL을 배우는 것은 Delphi를 마스터하는 데 매우 도움이 됩니다. 현재 VCL에 대한 내부 정보가 부족하다는 점을 고려하면 이 부분이 독자에게 제공하는 내용은 제한적일 수 있지만 이는 드뭅니다.
엄밀히 말하면 이 책은 '전문가'를 위한 책이 아니라, RAD에서 OOP로 바꾸고 싶은 프로그래머, 델파이를 통해 OOP를 배우고 싶은 친구들을 위한 책이다. 실용적인 중급 델파이 기술서로 더 적합하다고 생각합니다. 따라서 책 전체를 집필함에 있어서 그림과 글을 곁들여 이해하기 쉽도록 노력하고 있으며, 다수의 예제 프로그램도 정성스럽게 작성하였습니다(책과 함께 제공되는 CD-ROM의 소스 코드는 50MB를 초과합니다). 공부하는 독자들. 이 책은 델파이의 모든 측면이 아닌 핵심 OOP에 중점을 둡니다. 이 책을 읽으려면 Delphi에 대한 특정 기본 지식이 필요합니다. 이 책에는 COM+ 등의 전문 지식이 포함되어 있으며 독자는 추가 참조를 위해 관련 책을 참조해야 합니다.
이 책을 보고 실망할 '전문가'도 있을 수 있다. 나는 전문가가 아니기 때문에 "전문가"가 읽을 수 있는 책을 쓰기에 적합하지 않다고 생각합니다. 다른 초보들과 다르게 저는 델파이를 오랫동안 사용해왔고 조금 더 많은 경험과 경험을 가지고 있습니다. 그러므로 이 책에서 잘못된 점을 발견하면 정정해 주십시오. 불만족스러운 점은 용서해 주시기 바랍니다.
네티즌 xzh2000은 "책의 생명은 매우 중요하다. 저자가 시간을 들여 책을 자주 수정하고 보완해야 고전이 될 수 있다!"라고 잘 표현했습니다. 좋은 책이 고전이 되려면 여러 번 수정을 거쳐야 한다는 것이 사실이므로, 독자 여러분의 귀중한 제안을 귀담아 듣고 이 책이 지속적으로 수정 및 재출판될 수 있기를 바랍니다.