You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pages/DSA Algo & System Design.md
-19Lines changed: 0 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,34 +8,20 @@ keywords: "DSA, data structures, algorithms, system design, technical interview,
8
8
- ## The **core concepts** of OOP are **14** :-
9
9
collapsed:: true
10
10
- [[Class]] - Blueprint for creating objects, defining properties and methods. Allocates no memory itself — only its instances do.
11
-
logseq.order-list-type:: number
12
11
- [[Constructor]] - Special method that automatically runs when an object is created, used to initialize attributes with starting values.
13
-
logseq.order-list-type:: number
14
12
- [[Destructors]] - Cleanup method called when an object is destroyed or goes out of scope; releases resources (memory, file handles, connections).
15
-
logseq.order-list-type:: number
16
13
- [[Object]] - A concrete instance of a class. Holds its own copy of attributes and accesses shared class methods via reference.
17
-
logseq.order-list-type:: number
18
14
- [[Encapsulation]] - Bundling data and methods into a class and restricting direct access to internal state using access modifiers (public / protected / private).
19
-
logseq.order-list-type:: number
20
15
- [[Abstraction]] - Hiding complex implementation details and exposing only essential, relevant features to the user of the class.
21
-
logseq.order-list-type:: number
22
16
- [[Inheritance]] - A child class derives (inherits) attributes and methods from a parent class, enabling code reuse and specialization. Represents an **is-a** relationship.
23
-
logseq.order-list-type:: number
24
17
- [[Polymorphism]] - One interface, many behaviors. Objects of different types can be treated as a common base type, and the correct method is called at runtime.
25
-
logseq.order-list-type:: number
26
18
- [[Composition]] - Building complex objects by embedding simpler objects inside them (**has-a** relationship, strong dependency — child cannot exist without parent).
27
19
id:: 67e63024-2a0a-4a19-aff1-05ad33f056cf
28
-
logseq.order-list-type:: number
29
20
- [[Interface]] - A contract (pure abstract definition) that a class must fulfill, listing method signatures without any implementation body.
30
-
logseq.order-list-type:: number
31
21
- [[Method Overloading]] - Defining multiple methods with the **same name** but **different parameter lists** within the same class (compile-time polymorphism).
32
-
logseq.order-list-type:: number
33
22
- [[Method Overriding]] - A subclass redefines a method inherited from the parent class to change or extend its behavior (runtime polymorphism).
34
-
logseq.order-list-type:: number
35
23
- [[Static Methods and Class Methods]] - Methods that belong to the **class itself**, not to individual instances. Static methods have no `self`/`cls`; class methods receive the class as their first argument.
36
-
logseq.order-list-type:: number
37
24
- [[Dynamic Binding]] (Late Binding) - The process of resolving which method implementation to invoke at **runtime** based on the actual object type, not the declared type.
38
-
logseq.order-list-type:: number
39
25
-
40
26
- ## **Additional related concepts** or **design patterns** that extend OOP :-
41
27
collapsed:: true
@@ -77,15 +63,10 @@ keywords: "DSA, data structures, algorithms, system design, technical interview,
- [[Single Responsibility Principle (SRP)]] - A class should have **one and only one reason to change** — it should do exactly one thing.
80
-
logseq.order-list-type:: number
81
66
- [[Open Closed Principle (OCP)]] - Software entities should be **open for extension** but **closed for modification** — add new behavior without touching existing code.
82
-
logseq.order-list-type:: number
83
67
- [[Liskov Substitution Principle (LSP)]] - Objects of a subclass must be substitutable for objects of the parent class **without breaking** program correctness.
84
-
logseq.order-list-type:: number
85
68
- [[Interface Segregation Principle (ISP)]] - Prefer **many small, specific interfaces** over one large general-purpose interface — clients should not be forced to implement methods they don't need.
86
-
logseq.order-list-type:: number
87
69
- [[Dependency Inversion Principle (DIP)]] - High-level modules should not depend on low-level modules; **both should depend on abstractions** (interfaces/abstract classes), not concrete implementations.
88
-
logseq.order-list-type:: number
89
70
-
90
71
-# Complexity Analysis
91
72
- [[Complexity Analysis]] - Complete guide to time and space complexity, Big O notation, and algorithm mathematics.
0 commit comments