1
(procedure-oriented)?? 2
(Objected-Oriented) (class)? (method)? 3
: ( 4
???? 5
OO 1966 Kisten Nygaard Ole-Johan Dahl Simula Simula 爲 6
Smalltalk Alan Kay 1972 PARC Smalltalk Smalltalk 爲 Smalltalk 爲 Smalltalk ---- - 7
8
1990 (design patterns) 9
Why 産 10
Why OO 爲 ---- - --- 11
WHY OO --- RAD (Rapid Application Development) OO 12
Why OO? ---- 爲 13
Why OO? Model 爲 Model 爲 14
15
OOP 爲 爲 爲 爲 爲 (message) 爲 method process 産 (template) 16
Smalltalk Smalltalk 5 Smalltalk-80 爲 C objective-c C++ Java ( Microsoft C#) LISP Flavors XLISP LOOPS CLOS PASCAL Object Pascal Turbo Pascal Eiffel Ada 95 Simula 17
C++ Object-C Brad Cox C++ Bjarne Stroustrup C STRUCT 爲 CLASS (virtual functions) C++ 2.0 Unix C++ 18
C++ C++ (Object) (Method) (Message) 19
C++ C++ (Derived Class) (Base Class) private protected public C++ 20
C++ (Dynamic Binding) C++ (Virtual Function) C++ : (Overloaded Function), (Overloaded Operator) 21
Java Sun microsystems 1995 Internet Java applets HTML Java Ada C 22
Pascal Object Pascal Apple Niklaus Wirth 爲 Macintosh MacApp Turbo Pascal Borland Object Pascal 爲 Object Pascal Borland Delphi Borland Object Pascal 23
爲 (Object-based) Alphard CLU Euclid Gypsy Mesa Modula 24
(Class) (Encapsulation) (abstract data types) (State) (Messages) (Inheritance) (Polymorphism) (Generality) 25
60 Software is Hard [Martin, 95] 26
OOD OOD OOD OOD 27
OOD Object-Oriented Design OOD Bjarne Stroustrup paradigm OOD 28
OOD OOD OOD interface 29
OOD OOD paradigm OOD object problem domain 30