The Open-Closed Principle
BEHAVIOR
Closed for modification means that extending the ___ of a module won't incur changes to the source or binary code of that module.
SOURCE OR BINARY CODE
Closed for modification means that extending the behavior of a module won't incur changes to the ___ of that module.
DEVELOPMENT TIME
Conforming to OCP costs ___ and programmer effort to create the appropriate abstractions.
PROGRAMMER EFFORT
Conforming to OCP costs development time and ___ to create the appropriate abstractions.
ABSTRACTIONS
Conforming to OCP costs development time and programmer effort to create the appropriate ___.
TEMPLATE METHOD
Design patterns that satisfy OCP are the Strategy pattern and the ___ pattern.
STRATEGY
Design patterns that satisfy OCP are the ___ pattern and the Template Method pattern.
DERIVATIVES
In OOP, all possible ___ of an abstract base class are an unbounded group of possible behaviors.
UNBOUNDED
In OOP, all possible derivatives of an abstract base class are an ___ group of possible behaviors.
BEHAVIORS
In OOP, all possible derivatives of an abstract base class are an unbounded group of possible ___.
ABSTRACT BASE CLASS
In OOP, an ___ has a fixed behavior.
FIXED
In OOP, an abstract base class has a ___ behavior.
CLOSED
In general, no matter how ___ a module is, there will always be some kind of change against which it is not closed.
CLOSED
In general, no matter how closed a module is, there will always be some kind of change against which it is not ___.
FIXED
OCP says a module should have a ___ behavior yet should represent an unbounded group of possible behaviors.
UNBOUNDED
OCP says a module should have a fixed behavior yet should represent an ___ group of possible behaviors.
BEHAVIORS
OCP says a module should have a fixed behavior yet should represent an unbounded group of possible ___.
FURTHER CHANGES OF THAT KIND
OCP says that after a refactor, ___ will not cause more modification to the design.
MODIFICATION
OCP says that after a refactor, further changes of that kind will not cause more ___ to the design.
CHANGE
OCP says that given a ___, we should protect ourselves from further changes of that kind.
PROTECT
OCP says that given a change, we should ___ ourselves from further changes of that kind.
FURTHER CHANGES OF THAT KIND
OCP says that given a change, we should protect ourselves from ___.
REQUIREMENTS
Open for extension means that as ___ change, a module can be extended with new behaviors.
EXTENDED
Open for extension means that as requirements change, a module can be ___ with new behaviors.
BEHAVIORS
Open for extension means that as requirements change, a module can be extended with new ___.
BEHAVIOR
Open for extension means that the ___ of a module can be extended.
EXTENDED
Open for extension means that the behavior of a module can be ___.
CHANGE
Open for extension simply means we can ___ what a module does.
MODULE
Open for extension simply means we can change what a ___ does.
PREMATURE ABSTRACTION
Resisting ___ is as important as abstraction itself.
ABSTRACTION
Resisting premature abstraction is as important as ___ itself.
COMPLETE
Since module closure cannot be ___, it must be strategic.
STRATEGIC
Since module closure cannot be complete, it must be ___.
CLASSES, MODULES, FUNCTIONS, ETC,
The Open-Closed Principle says ___ should be open for extension but closed for modification.
OPEN FOR EXTENSION
The Open-Closed Principle says classes, modules, functions, etc, should be ___ but closed for modification.
CLOSED FOR MODIFICATION
The Open-Closed Principle says classes, modules, functions, etc, should be open for extension but ___.
CHOOSE
The designer must ___ the kinds of changes their design must be closed to.
CLOSED
The designer must choose the kinds of changes their design must be ___ to.
MODEL
There is no ___ that is natural to all contexts.
NATURAL
There is no model that is ___ to all contexts.
CONTEXTS
There is no model that is natural to all ___.
CONSIDERING
To avoid Needless Complexity, wait until the changes happen before ___ OCP.
NEEDLESS COMPLEXITY
To avoid ___, wait until the changes happen before considering OCP.
FURTHER CHANGES OF THAT KIND
When OCP is applied well, ___ are achieved by adding new code, not by changing old code that already works.
ADDING
When OCP is applied well, further changes of that kind are achieved by ___ new code, not by changing old code that already works.
CHANGING
When OCP is applied well, further changes of that kind are achieved by adding new code, not by ___ old code that already works.
SINGLE
When a ___ change to a program results in a cascade of changes to dependent modules, the design smells of Rigidity.
CASCADE
When a single change to a program results in a ___ of changes to dependent modules, the design smells of Rigidity.
RIGIDITY
When a single change to a program results in a cascade of changes to dependent modules, the design smells of ___.
ABSTRACTIONS
___ are created to protect against changes.
OPEN FOR EXTENSION
___ means that as requirements change, a module can be extended with new behaviors.
CLOSED FOR MODIFICATION
___ means that extending the behavior of a module won't incur changes to the source or binary code of that module.
OPEN FOR EXTENSION
___ means that the behavior of a module can be extended.
THE OPEN-CLOSED PRINCIPLE
___ says classes, modules, functions, etc, should be open for extension but closed for modification.
OPEN FOR EXTENSION
___ simply means we can change what a module does.
OPEN FOR EXTENSION
A module that manipulates an abstract base class is ___, by creating new derivatives of the abstraction.
CLOSED FOR MODIFICATION
A module that manipulates an abstract base class is ___, since it depends upon a fixed abstraction.
FIXED
A module that manipulates an abstract base class is closed for modification, since it depends upon a ___ abstraction.
DERIVATIVES
A module that manipulates an abstract base class is open for extension, by creating new ___ of the abstraction.
CLIENTS
Abstract classes are more closely associated to their ___ than to their derivatives.
DERIVATIVES
Abstract classes are more closely associated to their clients than to their ___.
PROTECT
Abstractions are created to ___ against changes.
LIKELY
Applications of OCP should be limited to ___ changes.
