Object-oriented programming and design1 Object-Oriented Programming and Design Ralph Johnson
Object-oriented programming and design2 Goals: to learn l Principles l Patterns l Practices l “Object think” l Frameworks / Design for reuse l Reflection - using objects to implement language
Object-oriented programming and design3 History of Objects l Simula’67 l Smalltalk 72,74,76,78,80 l 1985 C++ (Objective C, Object Pascal) l 1986 OOPSLA l 1990 COM, CORBA l 1994 Design Patterns l 1995 Java l 2001.NET
Object-oriented programming and design4 Design Principles l Code to an interface rather than to an implementation l Encapsulate what varies l Open-closed Principle: Classes should be open to extension and closed to modification l Don’t Repeat Yourself (DRY) l Single Responsibility Principle l Liskov Substitution Principle: Subtypes must be substitutable for their base types
Object-oriented programming and design5 Smalltalk l Extreme object-oriented language l Live objects l Readable library l Strong culture l Influencial, unknown l Fun!
Object-oriented programming and design6 From Smalltalk l WIMP - Windows, Mice, Pointing l Model/View/Controller l Browsers l CRC cards l eXtreme Programming l Automated refactoring tools
Smalltalk family tree l Smalltalk-80 l ObjectWorks ->VisualWorks 1, 2, 3, 5, l Squeak -> Squeak 4.1 -> Pharo -> CUIS l Gemstone l VisualAge for Smalltalk l Smalltalk X, Smalltalk Agents, Dolphin Object-oriented programming and design7
8 The class l First month is Smalltalk l Homework, often several per week l Second half of the semester is group project l Reading and writing patterns l Pharo By Example. l Design Patterns l Domain-Driven Design
Object-oriented programming and design9 Before next time l Get Pharo By Example l Read first three chapters, and follow along with Pharo l Get Pharo l Watch “Growing a Language” by Guy Steele at # #