Linked e-resources

Details

Intro
Preface
Organization of the Book
Acknowledgments
Contents
Chapter 1 Introduction
1.1 Defining Software Design
1.2 Design in the Software Development Process
1.3 Capturing Design Knowledge
The Unified Modeling Language
1.4 Sharing Design Know-How
Design Patterns
Design Antipatterns
Insights
Further Reading
Chapter 2 Encapsulation
Design Context
2.1 Encapsulation and Information Hiding
2.2 Encoding Abstractions as Types
Code Exploration: JetUML · Dimension
Code Exploration: Solitaire · Card
2.3 Scopes and Accessibility

2.4 Object Diagrams
2.5 Escaping References
Returning a reference to an internal object
Storing an external reference internally
Leaking references through shared structures
2.6 Immutability
Code Exploration: JetUML · Rectangle
2.7 Exposing Internal Data
Extended interface
Returning Copies
Other Strategies
Code Exploration: JetUML · Diagram
Diagram
2.8 Input Validation
Code Exploration: JetUML · Version
2.9 Design by Contract
Code Exploration: JetUML · Rectangle
Code Exploration: Solitaire · Deck
Insights
Further Reading

Chapter 3 Types and Interfaces
Design Context
3.1 Decoupling Behavior from Implementation
3.2 Specifying Behavior with Interface Types
3.3 Class Diagrams
3.4 Function Objects
3.5 Iterators
3.6 The ITERATOR Design Pattern
Code Exploration: Solitaire · CardStack
3.7 The STRATEGY Design Pattern
Code Exploration: Solitaire · PlayingStrategy
PlayingStrategy
3.8 Dependency Injection
Code Exploration: Solitaire · GameModel
3.9 The Interface Segregation Principle
Code Exploration: Solitaire · GameModel
Code Exploration: JetUML · DiagramElement
Insights

Further Reading
Chapter 4 Object State
Design Context
4.1 The Static and Dynamic Perspectives of a Software System
4.2 Defining Object State
4.3 State Diagrams
4.4 Designing Object Life Cycles
Invalid and Useless States
Unnecessary Stateful Information
4.5 Nullability
No Need to Model Absent Values
Modeling Absent Values
Optional Types
Code Exploration: JetUML · TypeNode
The NULL OBJECT Design Pattern
Code Exploration: Solitaire · NullPlayingStrategy
4.6 Final Fields and Variables
4.7 Object Identity, Equality, and Uniqueness

Code Exploration: JetUML · Dimension
4.8 The FLYWEIGHT Design Pattern
Code Exploration: JetUML · Direction
4.9 The SINGLETON Design Pattern
Code Exploration: Solitaire · GameModel
Code Exploration: JetUML · ApplicationResources
4.10 Objects of Nested Classes
Inner Classes
Anonymous Classes
Code Exploration: Solitaire · GameModel
Insights
Further Reading
Chapter 5 Unit Testing
Design Context
5.1 Introduction to Unit Testing
5.2 Unit Testing Framework Fundamentals with JUnit
5.3 Organizing Test Code
5.4 Metaprogramming
Introspection

Browse Subjects

Show more subjects...

Statistics

from
to
Export