software design vocab

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/22

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

23 Terms

1
New cards

abstraction

hiding implementation details while exposing only essential features

2
New cards

Encapsulation

protects object integrity by controlling access to data

3
New cards

Tight coupling

class depends on specific methods or fields of another class

4
New cards

Low coupling

minimizes dependencies between classes, making changes in one class less liley to impact others

5
New cards

abstraction and encapulsation how they related and different

They are related in a way that encapsulation helps achieve abstraction.

They are different in the sense that abstraction focuses on hiding complexity of the system and encapsulation focusses on specifically restricting access to data or methods in a clas

6
New cards

Private keyword

demonstrates encapsulation. Encapsulation restricts direct access to the internal state of an object and only allows controlled access through public methods (deposit, withdraw, getBalance).

7
New cards

high cohesion

High cohesion because the class only deals with balance (focused on one responsibility).

8
New cards

This

keyword used to indicate the current object's members

9
New cards

protected

accessible to subclasses or classes in the same

Package

10
New cards

super

a reference variable that points to the parent class object. It is used in a subclass to access member

11
New cards

Liskov Substitution Principle

Violated when a subclass modifies behavior in a way that contradicts the expectations sets by its parent class

12
New cards

Composition over inheritance improve software design

it allows code to be more flexible by favoring delegation over hierarchy

13
New cards

SRP violation

Class has more than one reason to change such as

generating invoices, printing, and sending them

14
New cards

Model in MVC controller

stores the application's data

15
New cards

Inheritance vs compositiobn

composition main class has subclass. so car has engine

class Car { public Engine engine;

Car(Engine engine){ this.engine = engine; }

void drive(){ System.out.println("Car is driving..."); }}

16
New cards

DIP

high level modules should not depend on low level modules.

for example,

The Computer class directly depends on the concrete Keyboard class.

class Computer {

private Keyboard keyboard;

Computer(Keyboard keyboard){this.keyboard = keyboard;}

void use() { keyboard.type(); }

}

17
New cards

Interface Segregation Principle

a class should not be forced to implement interfaces it doesn't need to

18
New cards

Open/Closed Principle

a class should be open for extension butclosed for modification

19
New cards

Dependency Inversion Principle

objects should depend on abstractions instead of concrete implementations

20
New cards

Abstract data types

Definition: A collection of well-defined behaviors, irrespective of implementation details• Examples: Lists, maps, sets, stacks, queues

21
New cards

Model-View-Controller

a pattern which supports separation

of concerns for applications with user interfaces.

22
New cards

View

Allows users to input data and displays new data from the

model

23
New cards

Controller

Connects the view and model by receiving user

inputs, processing data, updating the data in the model, then

triggering a refresh of the view.