Ark's Read-Engine #01: OOSC(2/e) (Part 0)二客读书瘾勤 第1集:面向对象软件构造(第二版)(其之零)
书名:Object-Oriented Software Construction Second Edition作者:Bertrand Meyer 出版:清华大学出版社/Prentice-Hall International,Inc.
[本书内容的组织]在本书接下去的页码里,我们将纵览面向对象软件构造的方法和技巧。所述内容分为六大部分。
[第一部分:第1至2章]第一部分是介绍和概览。本部分内容开始先探索了软件质量(software quality)的基础议题,接着又对软件方法(method)的主要技术特征作了一个简明的审视。这一部分基本上可以作为一本独立的小书自成一体,为心急的读者提供面向对象方法的第一印象。
[第二部分:第3至6章]第二部分并不急着深入主题。本部分以“通往面向对象之路”为标题,花费笔墨描述一些方法学方面的问题,通过对这些问题的斟酌引入核心的面向对象概念。其叙述焦点放在模块性方面:如何为“大型(in-the-large)”系统之构造设计出令人满意的结构。最后介绍抽象数据型别(abstract data types)——对象技术(object technology)的数学基础——结束本部分内容。涉及到的数学知识比较初级,对数学“无胜于聊”的读者可以只满足于其中基本的概念,但其为你完全理解面向对象原理和论题提供了理论背景知识。
[第三部分:第7至18章]第三部分是本书的技术核心。本部分逐个阐述面向对象方法中的核心技术组件:类(classes);对象(objects)及相关的运行期模型(run-time model);内存管理问题;泛型(genericity)和型别化(typing);契约式设计(design by contract),断言(assertions),异常(exceptions);继承(inheritance),多态(polymorphism)和动态绑定(dynamic binding)的相关概念,及其许多激动人心的应用。
[第四部分:第19至29章]第四部分讨论方法学,特别强调分析与设计。本部分通过几个深入的案例研究,阐述一些基本的设计模式(design patterns),涵盖了诸如“如何寻求类(classes)”、“如何恰当的使用继承”以及“如何设计可复用程序库”等主要问题。一开始先讨论了对方法论学家以及其他陈述建议者的智力要求;继而又对面向对象开发的软件过程(生命周期模型)作了回顾,最后还讨论了如何在工业领域和大学里极尽所能的教授面向对象方法学。
[第五部分:第30至32章]第五部分探索进阶的主题:并发性(concurrency),分布性(distribution),“客户-服务器”开发以及因特网;永续性(persistence),方案演化(schema evolution)以及面向对象数据库;设计具有现代(“GUI”)图形接口的交互式系统。
[第六部分:第33至35章]第六部分纵览如何在各种语言和环境下进行面向对象实现(在某些情况下是模拟)。特别的,这部分包含了对主要面向对象语言的讨论,重点讨论Simula、Smalltalk、Objective-C、C++、Ada95以及Java;还评估了如何在诸如Fortran、Cobol、Pascal、C以及Ada等非面向对象语言中获得一些面向对象所带来的益处。
[第七部分:第36章]第七部分(“把事情做对”)描述了一个开发环境,它更进一步体现了面向对象的解决方案,提供了一个集成工具集以支持本书中所论述的面向对象方法。
[附录一]作为补充的参考内容,附录一展示了本书论及的一些重要可复用程序库的类(classes),为可复用软件的设计提供了参考模型。
Contents[目录]
Preface vForeword to the second edition xiiiAbout the accompanying CD-ROM xivOn the bibliography, Internet sources and exercises xvContents xvii
PART A: THE ISSUES 1第一部分:基本议题
Chapter 1: Software quality 3第1章:软件质量1.1 EXTERNAL AND INTERNAL FACTORS 31.2 A REVIEW OF EXTERNAL FACTORS 41.3 ABOUT SOFTWARE MAINTENANCE 171.4 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 191.5 BIBLIOGRAPHICAL NOTES 19
Chapter 2: Criteria of object orientation 21第2章:面向对象的准则2.1 ON THE CRITERIA 212.2 METHOD AND LANGUAGE 222.3 IMPLEMENTATION AND ENVIRONMENT 312.4 LIBRARIES 332.5 FOR MORE SNEAK PREVIEW 342.6 BIBLIOGRAPHICAL NOTES AND OBJECT RESOURCES 34
PART B: THE ROAD TO OBJECT ORIENTATION 37第二部分:通往面向对象之路
Chapter 3: Modularity 39第3章:模块性3.1 FIVE CRITERIA 403.2 FIVE RULES 463.3 FIVE PRINCIPLES 533.4 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 643.5 BIBLIOGRAPHICAL NOTES 64EXERCISES 65
Chapter 4: Approaches to reusability 67第4章:通向可复用性的途径4.1 THE GOALS OF REUSABILITY 684.2 WHAT SHOULD WE REUSE? 704.3 REPETITION IN SOFTWARE DEVELOPMENT 744.4 NON-TECHNICAL OBSTACLES 744.5 THE TECHNICAL PROBLEM 814.6 FIVE REQUIREMENTS ON MODULE STRUCTURES 834.7 TRADITIONAL MODULAR STRUCTURES 894.8 OVERLOADING AND GENERICITY 934.9 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 984.10 BIBLIOGRAPHICAL NOTES 99
Chapter 5: Towards object technology 101第5章:朝对象技术进发5.1 THE INGREDIENTS OF COMPUTATION 1015.2 FUNCTIONAL DECOMPOSITION 1035.3 OBJECT-BASED DECOMPOSITION 1145.4 OBJECT-ORIENTED SOFTWARE CONSTRUCTION 1165.5 ISSUES 1175.6 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 1195.7 BIBLIOGRAPHICAL NOTES 119
Chapter 6: Abstract data types 121第6章:抽象数据型别6.1 CRITERIA 1226.2 IMPLEMENTATION VARIATIONS 1226.3 TOWARDS AN ABSTRACT VIEW OF OBJECTS 1266.4 FORMALIZING THE SPECIFICATION 1296.5 FROM ABSTRACT DATA TYPES TO CLASSES 1426.6 BEYOND SOFTWARE 1476.7 SUPPLEMENTARY TOPICS 1486.8 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 1596.9 BIBLIOGRAPHICAL NOTES 160EXERCISES 161
PART C: OBJECT-ORIENTED TECHNIQUES 163第三部分:面向对象技术
Chapter 7: The static structure: classes 165第7章:静态结构——类7.1 OBJECTS ARE NOT THE SUBJECT 1657.2 AVOIDING THE STANDARD CONFUSION 1667.3 THE ROLE OF CLASSES 1697.4 A UNIFORM TYPE SYSTEM 1717.5 A SIMPLE CLASS 1727.6 BASIC CONVENTIONS 1777.7 THE OBJECT-ORIENTED STYLE OF COMPUTATION 1817.8 SELECTIVE EXPORTS AND INFORMATION HIDING 1917.9 PUTTING EVERYTHING TOGETHER 1947.10 DISCUSSION 2037.11 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 2137.12 BIBLIOGRAPHICAL NOTES 215EXERCISES 216
Chapter 8: The run-time structure: objects 217第8章:运行期结构——对象8.1 OBJECTS 2188.2 OBJECTS AS A MODELING TOOL 2288.3 MANIPULATING OBJECTS AND REFERENCES 2318.4 CREATION PROCEDURES 2368.5 MORE ON REFERENCES 2408.6 OPERATIONS ON REFERENCES 2428.7 COMPOSITE OBJECTS AND EXPANDED TYPES 2548.8 ATTACHMENT: REFERENCE AND VALUE SEMANTICS 2618.9 DEALING WITH REFERENCES: BENEFITS AND DANGERS 2658.10 DISCUSSION 2708.11 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 2768.12 BIBLIOGRAPHICAL NOTES 277EXERCISES 277
Chapter 9: Memory management 279第9章:内存管理9.1 WHAT HAPPENS TO OBJECTS 2799.2 THE CASUAL APPROACH 2919.3 RECLAIMING MEMORY: THE ISSUES 2939.4 PROGRAMMER-CONTROLLED DEALLOCATION 2949.5 THE COMPONENT-LEVEL APPROACH 2979.6 AUTOMATIC MEMORY MANAGEMENT 3019.7 REFERENCE COUNTING 3029.8 GARBAGE COLLECTION 3049.9 PRACTICAL ISSUES OF GARBAGE COLLECTION 3099.10 AN ENVIRONMENT WITH MEMORY MANAGEMENT 3129.11 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 3159.12 BIBLIOGRAPHICAL NOTES 315EXERCISES 316
Chapter 10: Genericity 317第10章:泛型10.1 HORIZONTAL AND VERTICAL TYPE GENERALIZATION 31710.2 THE NEED FOR TYPE PARAMETERIZATION 31810.3 GENERIC CLASSES 32010.4 ARRAYS 32510.5 THE COST OF GENERICITY 32810.6 DISCUSSION: NOT DONE YET 32910.7 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 32910.8 BIBLIOGRAPHICAL NOTES 330EXERCISES 330
Chapter 11: Design by Contract: building reliable software 331第11章:契约式设计——建立可靠的软件11.1 BASIC RELIABILITY MECHANISMS 33211.2 ABOUT SOFTWARE CORRECTNESS 33311.3 EXPRESSING A SPECIFICATION 33411.4 INTRODUCING ASSERTIONS INTO SOFTWARE TEXTS 33711.5 PRECONDITIONS AND POSTCONDITIONS 33811.6 CONTRACTING FOR SOFTWARE RELIABILITY 34111.7 WORKING WITH ASSERTIONS 34811.8 CLASS INVARIANTS 36311.9 WHEN IS A CLASS CORRECT? 36911.10 THE ADT CONNECTION 37311.11 AN ASSERTION INSTRUCTION 37811.12 LOOP INVARIANTS AND VARIANTS 38011.13 USING ASSERTIONS 38911.14 DISCUSSION 39811.15 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 40611.16 BIBLIOGRAPHICAL NOTES 407EXERCISES 408POSTSCRIPT: THE ARIANE 5 FAILURE 410
Chapter 12: When the contract is broken: exception handling 411第12章:毁约的时候——异常处理12.1 BASIC CONCEPTS OF EXCEPTION HANDLING 41112.2 HANDLING EXCEPTIONS 41412.3 AN EXCEPTION MECHANISM 41912.4 EXCEPTION HANDLING EXAMPLES 42212.5 THE TASK OF A RESCUE CLAUSE 42712.6 ADVANCED EXCEPTION HANDLING 43112.7 DISCUSSION 43512.8 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 43712.9 BIBLIOGRAPHICAL NOTES 438EXERCISES 438
Chapter 13: Supporting mechanisms 439第13章:辅助机制13.1 INTERFACING WITH NON-O-O SOFTWARE 43913.2 ARGUMENT PASSING 44413.3 INSTRUCTIONS 44713.4 EXPRESSIONS 45213.5 STRINGS 45613.6 INPUT AND OUTPUT 45713.7 LEXICAL CONVENTIONS 45713.8 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 458EXERCISES 458
Chapter 14: Introduction to inheritance 459第14章:初探继承14.1 POLYGONS AND RECTANGLES 46014.2 POLYMORPHISM 46714.3 TYPING FOR INHERITANCE 47214.4 DYNAMIC BINDING 48014.5 DEFERRED FEATURES AND CLASSES 48214.6 REDECLARATION TECHNIQUES 49114.7 THE MEANING OF INHERITANCE 49414.8 THE ROLE OF DEFERRED CLASSES 50014.9 DISCUSSION 50714.10 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 51614.11 BIBLIOGRAPHICAL NOTES 517EXERCISES 517
Chapter 15: Multiple inheritance 519第15章:多重继承15.1 EXAMPLES OF MULTIPLE INHERITANCE 51915.2 FEATURE RENAMING 53515.3 FLATTENING THE STRUCTURE 54115.4 REPEATED INHERITANCE 54315.5 DISCUSSION 56315.6 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 56615.7 BIBLIOGRAPHICAL NOTES 567EXERCISES 567
Chapter 16: Inheritance techniques 569第16章:继承的技巧16.1 INHERITANCE AND ASSERTIONS 56916.2 THE GLOBAL INHERITANCE STRUCTURE 58016.3 FROZEN FEATURES 58316.4 CONSTRAINED GENERICITY 58516.5 ASSIGNMENT ATTEMPT 59116.6 TYPING AND REDECLARATION 59516.7 ANCHORED DECLARATION 59816.8 INHERITANCE AND INFORMATION HIDING 60516.9 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 60916.10 BIBLIOGRAPHICAL NOTE 610EXERCISES 610
Chapter 17: Typing 611第17章:型别化17.1 THE TYPING PROBLEM 61117.2 STATIC TYPING: WHY AND HOW 61517.3 COVARIANCE AND DESCENDANT HIDING 62117.4 FIRST APPROACHES TO SYSTEM VALIDITY 62817.5 RELYING ON ANCHORED TYPES 63017.6 GLOBAL ANALYSIS 63317.7 BEWARE OF POLYMORPHIC CATCALLS! 63617.8 AN ASSESSMENT 63917.9 THE PERFECT FIT 64017.10 KEY CONCEPTS STUDIED IN THIS CHAPTER 64117.11 BIBLIOGRAPHICAL NOTES 641
Chapter 18: Global objects and constants 643第18章:全局对象和常量18.1 CONSTANTS OF BASIC TYPES 64318.2 USE OF CONSTANTS 64518.3 CONSTANTS OF CLASS TYPES 64618.4 APPLICATIONS OF ONCE ROUTINES 64818.5 CONSTANTS OF STRING TYPE 65318.6 UNIQUE VALUES 65418.7 DISCUSSION 65618.8 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 65918.9 BIBLIOGRAPHICAL NOTES 660EXERCISES 660
PART D: OBJECT-ORIENTED METHODOLOGY:APPLYING THE METHOD WELL 661第四部分:面向对象方法学——妥当的实施方法
Chapter 19: On methodology 663第19章:关于方法学19.1 SOFTWARE METHODOLOGY: WHY AND WHAT 66319.2 DEVISING GOOD RULES: ADVICE TO THE ADVISORS 66419.3 ON USING METAPHORS 67119.4 THE IMPORTANCE OF BEING HUMBLE 67319.5 BIBLIOGRAPHICAL NOTES 674EXERCISES 674
Chapter 20: Design pattern: multi-panel interactive systems 675第20章:设计模式——多面板交互式系统20.1 MULTI-PANEL SYSTEMS 67520.2 A SIMPLE-MINDED ATTEMPT 67720.3 A FUNCTIONAL, TOP-DOWN SOLUTION 67820.4 A CRITIQUE OF THE SOLUTION 68220.5 AN OBJECT-ORIENTED ARCHITECTURE 68420.6 DISCUSSION 69320.7 BIBLIOGRAPHICAL NOTE 694
Chapter 21: Inheritance case study: “undo” in an interactivesystem 695第21章:继承案例研习——交互式系统中的“undo(撤销)”21.1 PERSEVERARE DIABOLICUM 69521.2 FINDING THE ABSTRACTIONS 69921.3 MULTI-LEVEL UNDO-REDO 70421.4 IMPLEMENTATION ASPECTS 70721.5 A USER INTERFACE FOR UNDOING AND REDOING 71121.6 DISCUSSION 71221.7 BIBLIOGRAPHICAL NOTES 715EXERCISES 715
Chapter 22: How to find the classes 719第22章:如何寻求类22.1 STUDYING A REQUIREMENTS DOCUMENT 72022.2 DANGER SIGNALS 72622.3 GENERAL HEURISTICS FOR FINDING CLASSES 73122.4 OTHER SOURCES OF CLASSES 73522.5 REUSE 74022.6 THE METHOD FOR OBTAINING CLASSES 74122.7 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 74322.8 BIBLIOGRAPHICAL NOTES 744
Chapter 23: Principles of class design 747第23章:类的设计原则23.1 SIDE EFFECTS IN FUNCTIONS 74823.2 HOW MANY ARGUMENTS FOR A FEATURE? 76423.3 CLASS SIZE: THE SHOPPING LIST APPROACH 77023.4 ACTIVE DATA STRUCTURES 77423.5 SELECTIVE EXPORTS 79623.6 DEALING WITH ABNORMAL CASES 79723.7 CLASS EVOLUTION: THE OBSOLETE CLAUSE 80223.8 DOCUMENTING A CLASS AND A SYSTEM 80323.9 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 80623.10 BIBLIOGRAPHICAL NOTES 806EXERCISES 807
Chapter 24: Using inheritance well 809第24章:恰当的使用继承24.1 HOW NOT TO USE INHERITANCE 80924.2 WOULD YOU RATHER BUY OR INHERIT? 81224.3 AN APPLICATION: THE HANDLE TECHNIQUE 81724.4 TAXOMANIA 82024.5 USING INHERITANCE: A TAXONOMY OF TAXONOMY 82224.6 ONE MECHANISM, OR MORE? 83324.7 SUBTYPE INHERITANCE AND DESCENDANT HIDING 83524.8 IMPLEMENTATION INHERITANCE 84424.9 FACILITY INHERITANCE 84724.10 MULTIPLE CRITERIA AND VIEW INHERITANCE 85124.11 HOW TO DEVELOP INHERITANCE STRUCTURES 85824.12 A SUMMARY VIEW: USING INHERITANCE WELL 86224.13 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 86324.14 BIBLIOGRAPHICAL NOTES 86324.15 APPENDIX: A HISTORY OF TAXONOMY 864EXERCISES 869
Chapter 25: Useful techniques 871第25章:有用的技巧25.1 DESIGN PHILOSOPHY 87125.2 CLASSES 87225.3 INHERITANCE TECHNIQUES 873
Chapter 26: A sense of style 875第26章:26.1 COSMETICS MATTERS! 87526.2 CHOOSING THE RIGHT NAMES 87926.3 USING CONSTANTS 88426.4 HEADER COMMENTS AND INDEXING CLAUSES 88626.5 TEXT LAYOUT AND PRESENTATION 89126.6 FONTS 90026.7 BIBLIOGRAPHICAL NOTES 901EXERCISES 902
Chapter 27: Object-oriented analysis 903第27章:面向对象分析27.1 THE GOALS OF ANALYSIS 90327.2 THE CHANGING NATURE OF ANALYSIS 90627.3 THE CONTRIBUTION OF OBJECT TECHNOLOGY 90727.4 PROGRAMMING A TV STATION 90727.5 EXPRESSING THE ANALYSIS: MULTIPLE VIEWS 91427.6 ANALYSIS METHODS 91727.7 THE BUSINESS OBJECT NOTATION 91927.8 BIBLIOGRAPHY 922
Chapter 28: The software construction process 923第28章:软件构造过程28.1 CLUSTERS 92328.2 CONCURRENT ENGINEERING 92428.3 STEPS AND TASKS 92628.4 THE CLUSTER MODEL OF THE SOFTWARE LIFECYCLE 92628.5 GENERALIZATION 92828.6 SEAMLESSNESS AND REVERSIBILITY 93028.7 WITH US, EVERYTHING IS THE FACE 93328.8 KEY CONCEPTS COVERED IN THIS CHAPTER 93428.9 BIBLIOGRAPHICAL NOTES 934
Chapter 29: Teaching the method 935第29章:教授面向对象方法29.1 INDUSTRIAL TRAINING 93529.2 INTRODUCTORY COURSES 93729.3 OTHER COURSES 94129.4 TOWARDS A NEW SOFTWARE PEDAGOGY 94229.5 AN OBJECT-ORIENTED PLAN 94629.6 KEY CONCEPTS STUDIED IN THIS CHAPTER 94829.7 BIBLIOGRAPHICAL NOTES 948
PART E: ADVANCED TOPICS 949第五部分:进阶的主题
Chapter 30: Concurrency, distribution, client-server andthe Internet 951第30章:并发性、分布性、“客户-服务器”开发以及因特网30.1 A SNEAK PREVIEW 95130.2 THE RISE OF CONCURRENCY 95330.3 FROM PROCESSES TO OBJECTS 95630.4 INTRODUCING CONCURRENT EXECUTION 96430.5 SYNCHRONIZATION ISSUES 97730.6 ACCESSING SEPARATE OBJECTS 98230.7 WAIT CONDITIONS 99030.8 REQUESTING SPECIAL SERVICE 99830.9 EXAMPLES 100330.10 TOWARDS A PROOF RULE 102230.11 A SUMMARY OF THE MECHANISM 102530.12 DISCUSSION 102830.13 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 103230.14 BIBLIOGRAPHICAL NOTES 1033EXERCISES 1035
Chapter 31: Object persistence and databases 1037第31章:对象永续性和数据库31.1 PERSISTENCE FROM THE LANGUAGE 103731.2 BEYOND PERSISTENCE CLOSURE 103931.3 SCHEMA EVOLUTION 104131.4 FROM PERSISTENCE TO DATABASES 104731.5 OBJECT-RELATIONAL INTEROPERABILITY 104831.6 OBJECT-ORIENTED DATABASE FUNDAMENTALS 105031.7 O-O DATABASE SYSTEMS: EXAMPLES 105531.8 DISCUSSION: BEYOND O-O DATABASES 105831.9 KEY CONCEPTS STUDIED IN THIS CHAPTER 106031.10 BIBLIOGRAPHICAL NOTES 1061EXERCISES 1062
Chapter 32: Some O-O techniques for graphical interactiveapplications 1063第32章:用于图形交互式应用的面向对象技巧32.1 NEEDED TOOLS 106432.2 PORTABILITY AND PLATFORM ADAPTATION 106632.3 GRAPHICAL ABSTRACTIONS 106832.4 INTERACTION MECHANISMS 107132.5 HANDLING THE EVENTS 107232.6 A MATHEMATICAL MODEL 107632.7 BIBLIOGRAPHICAL NOTES 1076
PART F: APPLYING THE METHOD IN VARIOUSLANGUAGES AND ENVIRONMENTS 1077第六部分:在各种语言及环境中实施面向对象方法
Chapter 33: O-O programming and Ada 1079第33章:面向对象程序设计和Ada语言33.1 A BIT OF CONTEXT 107933.2 PACKAGES 108133.3 A STACK IMPLEMENTATION 108133.4 HIDING THE REPRESENTATION: THE PRIVATE STORY 108533.5 EXCEPTIONS 108833.6 TASKS 109133.7 FROM ADA TO ADA 95 109233.8 KEY CONCEPTS INTRODUCED IN THIS CHAPTER 109733.9 BIBLIOGRAPHICAL NOTES 1097EXERCISES 1098
Chapter 34: Emulating object technology in non-O-Oenvironments 1099第34章:在非面向对象环境中模拟对象技术34.1 LEVELS OF LANGUAGE SUPPORT 109934.2 OBJECT-ORIENTED PROGRAMMING IN PASCAL? 110034.3 FORTRAN 110234.4 OBJECT-ORIENTED PROGRAMMING AND C 110634.5 BIBLIOGRAPHICAL NOTES 1112EXERCISES 1112
Chapter 35: Simula to Java and beyond: major O-O languagesand environments 1113第35章:从Simula到Java至更多——主要的面向对象语言及环境35.1 SIMULA 111335.2 SMALLTALK 112635.3 LISP EXTENSIONS 113035.4 C EXTENSIONS 113135.5 JAVA 113635.6 OTHER O-O LANGUAGES 113735.7 BIBLIOGRAPHICAL NOTES 1138EXERCISES 1139
PART G: DOING IT RIGHT 1141第七部分:把事情做对
Chapter 36: An object-oriented environment 1143第36章:一个面向对象环境36.1 COMPONENTS 114336.2 THE LANGUAGE 114436.3 THE COMPILATION TECHNOLOGY 114436.4 TOOLS 114836.5 LIBRARIES 115036.6 INTERFACE MECHANISMS 115236.7 BIBLIOGRAPHICAL NOTES 1160Epilogue, In Full Frankness Exposing the Language 1161
PART H: APPENDICES 1163第八部分:附录
Appendix A: Extracts from the Base libraries 1165Appendix B: Genericity versus inheritance 1167B.1 GENERICITY 1168B.2 INHERITANCE 1173B.3 EMULATING INHERITANCE WITH GENERICITY 1175B.4 EMULATING GENERICITY WITH INHERITANCE 1176B.5 COMBINING GENERICITY AND INHERITANCE 1184B.6 KEY CONCEPTS INTRODUCED IN THIS APPENDIX 1187B.7 BIBLIOGRAPHICAL NOTES 1188EXERCISES 1188Appendix C: Principles, rules, precepts and definitions 1189Appendix D: A glossary of object technology 1193Appendix E: Bibliography 1203E.1 WORKS BY OTHER AUTHORS 1203E.2 WORKS BY THE AUTHOR OF THE PRESENT BOOK 1221Index 1225