Object Design: Roles, Responsibilities, and Collaborations
این کتاب درباره طراحی شی نرم افزاری است. مانند بسیاری از تلاشهای انسان، طراحی هنر بخش، مهندسی و حدس گمان و آزمایش است. به نظم در آوردن، سخت کارکردن، الهام گرفتن و این که مطئن باشیم روشها همگی نقش خود را به درستی ایفا میکنند. اگرچه طراحی نرم افزار به شدت کار خلاقانه ای است اما اصول آن به راحتی قابل یادگیری است. استراتژیها و تکنیک هایی برای توسعهی یک طراحی وجود دارد، و این کتاب تکنیکهای طراحی کاربردی را جمع آوری کرده است تا به شما کمک کند تا کارتان را انجام دهید. امیدواریم که درمورد تفکر در اشیا استاد شوید و راه حل هایی جدید در زمینه تکنولوژی اشیا ارائه دهید.
Table of contents:
Chapter 1. Design Concepts
• Object Machinery
• Roles
• Object Role Stereotypes
• Roles, Responsibilities, and Collaborations
• Object Contracts
• Domain Objects
• Application-Specific Objects
• Interfaces
• Classes
• Composition
• Inheritance
• Object Organizations
• Components
• Patterns
• Frameworks, Inc.
• Architecture
• Architectural Styles
• Design Description
• Summary
• Further Reading
Chapter 2. Responsibility-Driven Design
• A Process for Seeing, Describing, and Designing
• Writing the Script: Analysis Descriptions
• Casting the Characters: Exploratory Design
• Tuning the Production: Design Refinement
• Summary
• Further Reading
Chapter 3. Finding Objects
• A Discovery Strategy
• Looking for Objects and Roles, and Then Classes
• Why Tell a Design Story?
• Search Strategies
• What's in a Name?
• Describing Candidates
• Characterizing Candidates
• Connecting Candidates
• Looking for Common Ground
• Defend Candidates and Look for Others
• SUMMARY
• FURTHER READING
Chapter 4. Responsibilities
• What Are Responsibilities?
• Where Do Responsibilities Come From?
• Strategies for Assigning Responsibilities
• Implementing Objects and Responsibilities
• Testing Your Candidates' Quality
• Summary
• Further Reading
Chapter 5. Collaborations
• What Is Object Collaboration?
• The Design Story for the Speak for Me Software
• Collaboration Options
• Strategies for Identifying Collaborations
• Simulating Collaborations
• Designing Good Collaborations
• Making Collaborations Possible
• When Are We Finished?
• Summary
• Further Reading
Chapter 6. Control Style
• What Is Control Style?
• COntrol Style Options
• Making Trade-Offs
• Developing Control Centers
• A Case Study: Control Style for External User Events
• Summary
Chapter 7. Describing Collaborations
• Telling Collaboration Stories
• A Strategy for Developing a Collaboration Story
• Establishing Scope, Depth, and Tone
• Listing What You Will Cover
• Deciding on the Level of Detail
• Choosing the Appropriate Form
• Tell It, Draw It, Describe It: Guidelines
• Organizing Your Work
• Preserving Stories
• Summary
• Further Reading
Chapter 8. Reliable Collaborations
• Understanding the Consequences of Failure
• Increasing Your System's Reliability
• Determining Where Collaborations Can Be Trusted
• Identifying Collaborations To Be Made Reliable
• Designing A Solution
• Documenting Your Exception-Handling Designs
• Reviewing Your Design
• Summary
• Further Reading
Chapter 9. Flexibility
• What Does It Mean to Be Flexible?
• Degrees of Flexibility
• The Consequences of a Flexible Solution
• Nailing Down Flexibility Requirements
• Recording Variations
• Variations and Realizations
• The Role of Patterns in Flexible Designs
• How to Document a Flexible Design
• Changing a Working System's Design
• Summary
• Further Reading
Chapter 10. On Design
• The Nature of Software Design
• Tackling Core Design Problems
• Frame the Problem
• Dealing with Revealing Design Problems
• Strategies for Solving Revealing Problems
• Working on the Rest
• Designing Responsibly
• Further Reading