CHF118.90
Download est disponible immédiatement
Object-Oriented Programming (OOP) is recognized as one of the most powerful programming techniques to come along in many years. Its power lies in the ability it gives the designer to manage the complex, rapidly changing applications that have become the watchword of modern software. Smalltalk is the most extensively used OOP environment. Now Practical Smalltalk helps you to focus on those aspects of the language that you need to know to be a successful programmer. You'll learn all about the important classes to master, the essential theories to grasp, and then put these ideas to work in constructing everything from a simple counter object all the way through a data graphing application and the core of a functional outliner. The book culmi- nates with the creation of a factory process simulation that takes advantage of Smalltalk's ability to create multi-window, multiprocessing applications. Designed for programmers and managers who must understand the operation and uses of the Smalltalk environment, this book assumes only an elementary working knowledge of OOP and the language. The book uses Smalltalk/V 286, Digitalk's widely used implementation of Smalltalk, but most of the concepts and techniques it teaches can be transferred easily to other versions of the language.
Contenu
1 The Environment.- An Overview of the Environment.- Using the Class Hierarchy Browser.- Templates in the CHB.- Removing Classes via the CHB.- The Smalltalk/V Image.- Using the Disk Browser.- Using the Other Browsers.- Using Inspectors.- Using Workspaces.- Using the Debugger.- 2 The Smalltalk/V Language.- Review of Basic Smalltalk Syntax.- Message-Passing Syntax.- Method-Definition Syntax.- Summary of Syntax.- The Essential Classes.- Object.- BitBlt.- CharacterScanner.- Pen.- The Collection Classes.- Dispatcher.- Form.- DisplayScreen.- Magnitude Classes.- Menu.- The Pane Classes.- Point.- Prompter.- Rectangle.- Stream.- StringModel.- TextSelection.- 3 The First Project: A Prioritizer.- Project Overview.- Designing the Project.- Building the Project.- Class Prompter.- Creating a Prompter.- Sorting the User's List.- Displaying the Result.- The Finished Prioritizer Method.- Adding Prioritizer to the Menus.- Demo Menu Modification.- System Menu Modification.- Sprucing Up the Application.- Changing the Prompter.- Consolidating the Code.- Using the Debugger, Part 2.- 4 Programming Techniques.- Why Smalltalk/V Feels Different.- Peeling the Onion.- Where to Begin?.- What Should the Application Do?.- Objects and Their Responsibilities.- What Do Objects Need to Know?.- How Do Objects Collaborate?.- Starting With Class Diagrams.- Creating Objects.- Subclassing the Class Object.- Subclassing Other Classes.- The Subclassing Process.- Modifying Behavior of Chosen Class.- Creating and Using Abstract Classes.- The Purpose of Do-Nothing Methods.- Identifying the Right Class.- Adding Methods.- The Process of Adding a Method.- Avoid Adding Methods to System Classes.- 5 The Second Project: A Simple Counter.- Project Overview.- A Quick Overview of Model-Pane-Dispatcher.- The Model.- The Pane.- The Dispatcher.- What's Really Going on Here?.- Designing the Project.- Dividing the Responsibilities.- Defining the Class.- Defining the Main Window.- Defining the Subpanes.- Displaying the Window.- Creating a Single Method for Window Definition.- Writing the Methods for SubPane Interaction.- Methods to Create a Counter.- Testing the Counter.- Making the Window Smaller.- Inspecting a Running Counter.- Removing the Counter Class.- The Complete Counter Project Listing.- 6 The World of MPD.- There's So Much Going on Here!.- TopPane Methods You'll Need.- The new Method.- The label: Method.- The addSubpane: Method.- The minimumSize: Method.- The initWindowSize Method.- The rightIcons: and leftIcons: Methods.- SubPane Methods You'll Need.- The model: Method.- The name: Method.- The change: Method.- The framingBlock: and framingRatio: Methods.- Creating Rectangles.- Rectangles and Subpanes.- Pane Menus.- Obtaining a TextPane's Contents.- The Only Model Method You'll Need.- Dispatcher Methods You'll Need.- The scheduleWindow Method.- The open Method.- Standard Use of Dispatcher Methods.- 7 The Third Project: Creating a New Pane Type.- Designing the Project.- Problems Addressed by ListPane.- Responsibilities of ListPane.- Problems to be Addressed by MListPane.- Responsibilities of MListPane.- A Note About Responsibilities.- Building the Test Application.- Defining and Initializing Instance Variables.- Opening the Application Window.- Connecting the Two Panes.- Creating and Constructing MListPane.- Building MListPane.- Relevant MListPane Responsibilities.- Clearing selection and selections as Needed.- Formatting and Unformatting Selections.- Adding and Removing Elements of selections.- Preserving the Original List.- Interpreting User Input for Selecting and De-Selecting Elements.- Providing the Model With User's Selections.- The Complete Listing.- An Alternative Approach.- 8 The Graphic World.- Basic Graphic Concepts.- The Class Point.- The Class Rectangle.- The Class Form.- Drawing in Smalltalk/V.- The Class BitBlt.- The Class Pen.- The direction: Method.- The turn: Method.- The place: Method.- The home Method.- The go: Method.- The goto: Method.- Class GraphPane.- 9 The Fourth Project: A Graphing Application.- Designing the Application.- The Subpanes.- The Class PlotWindow.- Building the Application: Stage One.- The open Method.- The initWindowSize Method.- Methods for the Text Pane.- Methods for the Graphing Pane.- Demonstrating the First Version.- Building the Application: Stage Two.- Plotting the Plots' Arguments.- The initialize Method.- Drawing the Bars.- Defining Graph Selection Methods.- The clearPlot Method.- The string:from: Method.- Demonstrating the Second Version.- The Complete Listing of Second Version.- Building the Application: Stage Three.- User Selection of Graph Arguments.- Changing the plotMenu.- The optionPicker Method.- The barFill Method.- The barSpacing, barWidth, and factor Methods.- The promptFor:default:validateWith: Method.- File-Based Data Retrieval and Storage.- The Modified dataMenu Method.- The fileIn Method.- The fileOut Method.- Redrawing the Plot on User Demand.- The Complete Listing.- 10 The Text World.- Behind the Text in Smalltalk.- The Class TextPane.- Methods for Appending Text.- Methods for Scrolling the Text.- Methods Related to Selection of Text.- The Class Text Editor.- Tracking the Status of Text.- Putting Special Characters in Text.- Zooming the Pane.- The Class StringModel.- Information-Gathering Methods.- Searching Methods.- Editing Methods.- The Class CharacterScanner.- Methods to Control Appearance.- Methods to Display Text.- Methods to Blank Portions of the Pane.- 11 The Fifth Project: A Form Designer.- Project Overview.- Designing the Project.- Statement of Purpose.- Defining the Objects.- Object Responsibilities.- General Approach.- Knowledge Needed.- Building the Project.- Creating the New Classes.- Skeletal Interaction Methods.- Building the Test Application.- Writing Methods to Place Sub-Panes.- Installing the Text Panes for Each Editable Field.- Modifying Undesirable Behavior in the Superclasses.- Adding Menu Capabilities.- Formatting the Name Fields.- Creating a More Complex Test Application.- Disabling Scrolling in the GraphPane.- An Alternative Approach.- Complete Source Code.