Principles of Package Design : Creating Reusable Software Components /: Creating Reusable Software Components. (2018)
- Record Type:
- Book
- Title:
- Principles of Package Design : Creating Reusable Software Components /: Creating Reusable Software Components. (2018)
- Main Title:
- Principles of Package Design : Creating Reusable Software Components
- Further Information:
- Note: Matthias Noback.
- Authors:
- Noback, Matthias
- Contents:
- Intro; Table of Contents; About the Author; About the Technical Reviewer; Acknowledgments; Introduction; Part I: Class Design; Chapter 1: The Single Responsibility Principle; A Class with Too Many Responsibilities; Responsibilities Are Reasons to Change; Refactoring: Using Collaborator Classes; Advantages of Having a Single Responsibility; Packages and the Single Responsibility Principle; Conclusion; Chapter 2: The Open/Closed Principle; A Class That Is Closed for Extension; Refactoring: Abstract Factory; Refactoring: Making the Abstract Factory Open for Extension Replacing or Decorating the Encoder FactoryMaking EncoderFactory Itself Open for Extension; Refactoring: Polymorphism; Packages and the Open/Closed Principle; Conclusion; Chapter 3: The Liskov Substitution Principle; Violation: A Derived Class Does Not Have an Implementation for All Methods; Leaky Abstractions; Violation: Different Substitutes Return Things of Different Types; More Specific Return Types Are Allowed; Violation: A Derived Class Is Less Permissive with Regard to Method Arguments; Violation: Secretly Programming Against a More Specific Type Packages and the Liskov Substitution PrincipleConclusion; Chapter 4: The Interface Segregation Principle; Violation: Multiple Use Cases; Refactoring: Separate Interfaces and Multiple Inheritance; Violation: No Interface, Just a Class; Implicit Changes in the Implicit Interface; Refactoring: Add Header and Role Interfaces; Packages and the Interface SegregationIntro; Table of Contents; About the Author; About the Technical Reviewer; Acknowledgments; Introduction; Part I: Class Design; Chapter 1: The Single Responsibility Principle; A Class with Too Many Responsibilities; Responsibilities Are Reasons to Change; Refactoring: Using Collaborator Classes; Advantages of Having a Single Responsibility; Packages and the Single Responsibility Principle; Conclusion; Chapter 2: The Open/Closed Principle; A Class That Is Closed for Extension; Refactoring: Abstract Factory; Refactoring: Making the Abstract Factory Open for Extension Replacing or Decorating the Encoder FactoryMaking EncoderFactory Itself Open for Extension; Refactoring: Polymorphism; Packages and the Open/Closed Principle; Conclusion; Chapter 3: The Liskov Substitution Principle; Violation: A Derived Class Does Not Have an Implementation for All Methods; Leaky Abstractions; Violation: Different Substitutes Return Things of Different Types; More Specific Return Types Are Allowed; Violation: A Derived Class Is Less Permissive with Regard to Method Arguments; Violation: Secretly Programming Against a More Specific Type Packages and the Liskov Substitution PrincipleConclusion; Chapter 4: The Interface Segregation Principle; Violation: Multiple Use Cases; Refactoring: Separate Interfaces and Multiple Inheritance; Violation: No Interface, Just a Class; Implicit Changes in the Implicit Interface; Refactoring: Add Header and Role Interfaces; Packages and the Interface Segregation Principle; Conclusion; Chapter 5: The Dependency Inversion Principle; Example of Dependency Inversion: the FizzBuzz Generator; Making the FizzBuzz Class Open for Extension; Removing Specificness Violation: A High-Level Class Depends on a Low-Level ClassRefactoring: Abstractions and Concretions Both Depend on Abstractions; Violation: Vendor Lock-In; Solution: Add an Abstraction and Remove the Dependency Using Composition; Packages and the Dependency Inversion Principle; Depending on Third-Party Code: Is It Always Bad?; When to Publish an Explicit Interface for a Class; If Not All Public Methods Are Meant to be Used by Regular Clients; If the Class Uses I/O; If the Class Depends on Third-Party Code; If You Want to Introduce an Abstraction for Multiple Specific Things If You Foresee That the User Wants to Replace Part of the Object HierarchyFor Everything Else: Stick to a Final Class; Conclusion; Part II: Package Design; Chapter 6: The Release/Reuse Equivalence Principle; Keep Your Package Under Version Control; Add a Package Definition File; Use Semantic Versioning; Design for Backward Compatibility; Rules of Thumb; Don't Throw Anything Away; When You Rename Something, Add a Proxy; Only Add Parameters to the End and with a Default Value; Methods Should Not Have Implicit Side-Effects; Dependency Versions Should Be Permissive … (more)
- Publisher Details:
- Place of publication not identified : Springer Nature Apress
- Publication Date:
- 2018
- Extent:
- 1 online resource
- Subjects:
- 004
Computer science
Software engineering
Object-oriented programming (Computer science)
COMPUTERS / Computer Literacy
COMPUTERS / Computer Science
COMPUTERS / Data Processing
COMPUTERS / Hardware / General
COMPUTERS / Information Technology
COMPUTERS / Machine Theory
COMPUTERS / Reference
Object-oriented programming (Computer science)
Software engineering
Computers -- Programming Languages -- General
Computers -- Software Development & Engineering -- General
Computers -- Web -- Web Programming
Computers -- Programming -- Open Source
Programming & scripting languages: general
Software Engineering
Web programming
Computer programming / software development
Computer programming
Open source software
Computers -- Programming -- General
Electronic books - Languages:
- English
- ISBNs:
- 9781484241196
1484241193 - Related ISBNs:
- 9781484241189
1484241185 - Notes:
- Note: Includes bibliographical references and index.
Note: Online resource; title from PDF file page (EBSCO, viewed November 19, 2018). - Access Rights:
- Legal Deposit; Only available on premises controlled by the deposit library and to one user at any one time; The Legal Deposit Libraries (Non-Print Works) Regulations (UK).
- Access Usage:
- Restricted: Printing from this resource is governed by The Legal Deposit Libraries (Non-Print Works) Regulations (UK) and UK copyright law currently in force.
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library HMNTS - ELD.DS.374833
- Ingest File:
- 02_354.xml