Question

    Which SOLID principle emphasizes that software entities

    should be open for extension but closed for modification?
    A Single Responsibility Principle (SRP) Correct Answer Incorrect Answer
    B Open/Closed Principle (OCP) Correct Answer Incorrect Answer
    C Liskov Substitution Principle (LSP) Correct Answer Incorrect Answer
    D Interface Segregation Principle (ISP) Correct Answer Incorrect Answer
    E Dependency Inversion Principle (DIP) Correct Answer Incorrect Answer

    Solution

    The Open/Closed Principle (OCP) is one of the SOLID principles for object-oriented design. 1. Key Idea: Software entities like classes, modules, and functions should be extendable without altering existing code. 2. Implementation: Achieved through techniques like inheritance, polymorphism, or interfaces that allow new functionality to be added without modifying the original codebase. 3. Benefits: Promotes code reusability, reduces the risk of introducing bugs into stable code, and facilitates easier maintenance and scaling. 4. Example: A class for processing payments could use an interface for payment methods. Adding a new payment type would require extending the interface, not modifying the class. This principle ensures that software systems are adaptable to new requirements without jeopardizing existing functionality. Why Other Options Are Incorrect: • A) SRP: Focuses on assigning one responsibility to each class/module but does not address extensibility. • C) LSP: Ensures derived classes can replace base classes without altering behavior, unrelated to modification. • D) ISP: Advocates for creating specific interfaces for clients, reducing unnecessary dependencies. • E) DIP: Encourages high-level modules to depend on abstractions rather than concrete implementations.

    Practice Next