A blueprint for a group of similar entities.
What is a class?
A Circle's relationship to Shape is an example of this.
What is inheritance?
+ - # are symbols for this
What are visibility modifiers?
This is about reuse and making sure you're not solving a problem that someone else has figured out (and documented) in the past.
What are Design Patterns?
Design to Interfaces
Favor aggregation over inheritance
Find what varies and encapsulate it
What are OOD principles?
An entity with responsibilities.
What is an object?
The ability to refer to different derivations of a class in the same way but getting the behavior appropriate to the derived class.
What is Polymorphism?
The one thing that never changes about requirements.
What is Change?
This shields your objects from implementation changes to other objects in your software by handing off responsibility.
What is Delegation?
This pattern lets classes work together that could not otherwise because of incompatible interfaces.
What is the Adapter Pattern?
A class in which some methods have no implementation.
What is an abstract class?
Keeping parts of the code separate (sometimes hidden) from other parts. With this separation, the parts that can change often are easier to change.
What is Encapsulation?
This is a pictorial representation of the relationships between objects in a design.
What is a Class Diagram?
Design patterns are based on the this idea.
What is of Loose coupling and high cohesion?
This pattern defines a family of algorithms, encapsulate each one, and make. them interchangeable.
What is the Strategy Pattern?
An abstract type that is used to specify a behavior that classes must implement.
What is an interface?
A Book's relationship to Library is an example of this.
What is Aggregation?
A module should have well-defined responsibilities.
What is Cohesion?
This pattern defines a high-level interface that makes a subsystem easier to use.
What is the Facade Pattern?
This pattern decouples an abstraction from its implementation so that the two can vary independently.
What is the Bridge Pattern?
A class which has implementation of all of its inherited members either from interface or abstract class.
A Person reads a Book is an example of this.
What is Dependency?
The degree of interdependence between software modules.
What is Coupling?
This pattern delegates the responsibility of object instantiation to another one via composition.
What is the Abstract Factory Pattern?
This pattern uses inheritance to handle the desired object instantiation.
What is the Factory Method Pattern?