|
![]() |
|||
|
||||
OverviewHow to Use Objects is organised around three fundamental principles: contracts of methods lead to a discussion of interfaces, specifications, and correctness. The concept of events leads to an understanding of objects as reactive entities, introducing insights that lie at the heart of all frameworks. Finally, responsibility-driven design perceives applications as networks of collaborating objects, illuminating crucial concepts of design and architecture. Full Product DetailsAuthor: Holger GastPublisher: Pearson Education (US) Imprint: Addison-Wesley Educational Publishers Inc Dimensions: Width: 19.50cm , Height: 3.20cm , Length: 23.40cm Weight: 1.220kg ISBN: 9780321995544ISBN 10: 0321995546 Pages: 832 Publication Date: 11 January 2016 Audience: Professional and scholarly , College/higher education , Professional & Vocational , Tertiary & Higher Education Format: Hardback Publisher's Status: Active Availability: In Print ![]() This item will be ordered in for you from one of our suppliers. Upon receipt, we will promptly dispatch it out to you. For in store availability, please contact us. Table of ContentsPart I: Language Usage Chapter 1: Basic Usage of Objects 1.1 The Core: Objects as Small and Active Entities 1.2 Developing with Objects 1.3 Fields 1.4 Methods 1.5 Exceptions 1.6 Constructors 1.7 Packages 1.8 Basics of Using Classes and Objects Chapter 2: Fundamental Object Structures 2.1 Propagating State Changes: Observer 2.2 Compound Objects 2.3 Hierarchical Structures 2.4 Wrappers: Adapters, Proxies, and Decorators Chapter 3: Abstraction and Hierarchy 3.1 Inheritance 3.2 Interfaces Part II: Contracts Chapter 4: Contracts for Objects 4.1 The Core: Assertions Plus Encapsulation 4.2 Elaborating the Concepts by Example 4.3 Motivating Contracts with Hindsight 4.4 Invariants and Callbacks 4.5 Checking Assertions at Runtime 4.6 The System Boundary 4.7 Arguing About the Correctness of Programs Chapter 5: Testing 5.1 The Core: Unit Testing 5.2 The Test First Principle 5.3 Writing and Running Unit Tests 5.4 Applications and Motivations for Testing Chapter 6: Fine Print in Contracts 6.1 Design-by-Contract 6.2 Contracts and Compound Objects 6.3 Exceptions and Contracts 6.4 Inheritance and Subtyping Part III: Events Chapter 7: Introduction to the Standard Widget Toolkit 7.1 The Core: Widgets, Layouts, and Events 7.2 The WindowBuilder: A Graphical Editor for UIs 7.3 Developing with Frameworks 7.4 SWT and the Native Interface 7.5 Compound Widgets 7.6 Dialogs 7.7 Mediator Pattern 7.8 Custom Painting for Widgets 7.9 Timers 7.10 Background Jobs 7.11 Review: Events and Contracts Chapter 8: A Brief Introduction to Threads 8.1 The Core: Parallel Code Execution 8.2 Correctness in the Presence of Threads 8.3 Notifications Between Threads 8.4 Asynchronous Messages 8.5 Open Calls for Notification 8.6 Deadlocks Chapter 9: Structuring Applications with Graphical Interfaces 9.1 The Core: Model-View Separation 9.2 The Model-View-Controller Pattern 9.3 The JFace Layer 9.4 The MVC Pattern at the Application Level 9.5 Undo/Redo 9.6 Wrapping Up Chapter 10: State Machines 10.1 The Core: An Object’s State and Reactions 10.2 State Machines in Real-World Scenarios 10.3 Implementing Finite State Machines Part IV: Responsibility-Driven Design Chapter 11: Responsibility-Driven Design 11.1 The Core: Networks of Collaborating Objects 11.2 The Single Responsibility Principle 11.3 Exploring Objects and Responsibilities 11.4 Responsibilities and Hierarchy 11.5 Fundamental Goals and Strategies Chapter 12: Design Strategies 12.1 Coupling and Cohesion 12.2 Designing for Flexibility 12.3 Extensibility 12.4 ReusabilityReviewsAuthor InformationHolger Gast graduated with a degree in computer science from the University of Tübingen, Germany, in 2000, and received a Ph.D. with a dissertation on type systems for programming languages in 2005 (Tübingen). As a post doctoral fellow, he worked on formal correctness proofs for software and finished his Habilitation for Computer Science in 2012 (Tübingen). Since 2000, he has been teaching in the area of software engineering at different levels of the computer science curriculum, starting from introductory programming courses to lectures on software design and architecture. His other interests include scientific databases for the humanities and the model-driven construction of data-driven web applications. Tab Content 6Author Website:Countries AvailableAll regions |