Software Development Terminology Flashcards

1
Q

What are the four pillars of Object Oriented Programming (OOP)?

A
  1. Encapsulation
  2. Abstraction
  3. Inheritance
  4. Polymorphism
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Encapsulation?

A

The bundling of data, along with the methods that operate on that data, into a single unit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is Abstraction?

A

The process of hiding all but the relevant details about an object in order to reduce complexity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is Inheritance?

A

A mechanism to derive a new class from an existing class to create a hierarchy of classes that share a set of data members and methods.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is Polymorphism?

A

To present the same interface for different underlying forms which can produce different behaviours.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What’s the difference between Abstraction and Encapsulation?

A

Abstraction and encapsulation are complementary concepts. Abstraction focuses on the observable behaviour of an object, while encapsulation focuses on the implementation that gives rise to this behaviour.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the SOLID Design Principles?

A
  1. Single Responsibility Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the Single Responsibility Principle?

A

A class should only do one thing, and therefore should only have one reason for its specification to change.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the Open/Closed Principle?

A

A class should be open to extension but closed to modification.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the Liskov Substitution Principle?

A

A subclass should be substitutable for its base class.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the Interface Segregation Principle?

A

Many specific interfaces are better than one general interface. A class should not be forced to implement functions it does not need.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Dependency Inversion?

A

A class should depend upon interfaces or abstract class rather than concrete classes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly