Skip to content
  • General
  • Programming
  • DS & Algo
  • System Design
  • Interview Questions
  • Home
  • YouTube
  • About
  • Contact
Learn to Code and Code to Learn

Learn to Code and Code to Learn

Your Journey to Code Mastery

  • General
    • Setup
  • Programming
    • C++
    • C++-11
    • c++-14
    • Python
  • DS & Algo
    • DS
    • Algo
      • Competitive Programming
        • Leetcode Problems
  • System Design
    • Design Pattern
    • SOLID Principle
  • Interview Questions
    • C++
    • Company Wise
  • Toggle search form

Interface Segregation Principle(ISP)

Posted on February 1, 2022February 5, 2022 By thecodepathshala 6 Comments on Interface Segregation Principle(ISP)

Clients should not be forced to depend upon interfaces that they do not use.

Do not force any client to implement an interface which is irrelevant to them

You should prefer many client interfaces rather than one general interface and each interface should have a specific responsibility. Interface Segregation Principle is very much related to the Single Responsibility Principle.
Suppose if you enter a restaurant and you are pure vegetarian. The waiter in that restaurant gave you the menu card which includes vegetarian items, non-vegetarian items, drinks, and sweets. In this case, as a customer, you should have a menu card which includes only vegetarian items, not everything which you don’t eat in your food. Here the menu should be different for different types of customers. The common or general menu card for everyone can be divided into multiple cards instead of just one. Using this principle helps in reducing the side effects and frequency of required changes.

Violating the Interface Segregation Principle

struct Document;

struct IMachine {
    virtual void print(Document &doc) = 0;
    virtual void fax(Document &doc) = 0;
    virtual void scan(Document &doc) = 0;
};

struct MultiFunctionPrinter : IMachine {      // OK
    void print(Document &doc) override { }
    void fax(Document &doc) override { }
    void scan(Document &doc) override { }
};

struct Scanner : IMachine {                   // Not OK
    void print(Document &doc) override { /* Blank */ }
    void fax(Document &doc) override { /* Blank */ }
    void scan(Document &doc) override {  
        // Do scanning ...
    }
};
  • As you can see, as far as MultiFunctionPrinter was concerned it’s ok to implement print(), fax() & scan() methods enforced by IMachine interface.
  • But what if you only need a Scanner or Printer, some dev still inherits IMachine & leave unnecessary methods blank or throw NotImplemented exception, either way, you are doing it wrong.

Interface Segregation Principle Example

/* -------------------------------- Interfaces ----------------------------- */
struct IPrinter {
    virtual void print(Document &doc) = 0;
};

struct IScanner {
    virtual void scan(Document &doc) = 0;
};
/* ------------------------------------------------------------------------ */

struct Printer : IPrinter {
    void print(Document &doc) override;
};

struct Scanner : IScanner {
    void scan(Document &doc) override;
};

struct IMachine : IPrinter, IScanner { };

struct Machine : IMachine {
    IPrinter&   m_printer;
    IScanner&   m_scanner;
    Machine(IPrinter &p, IScanner &s) : printer{p}, scanner{s} { }
    void print(Document &doc) override { printer.print(doc); }
    void scan(Document &doc) override { scanner.scan(doc); }
};
  • This gives the flexibility for the clients to combine the abstractions as they may see fit and to provide implementations without unnecessary cargo.  
  • As explained in the Single Responsibility Principle. You should avoid classes & interfaces with multiple responsibilities. Because they change often and make your software hard to maintain. You should try to split up the interface into multiple interfaces based on role.
C++, Design Pattern, SOLID Principle, System Design Tags:c++, design pattern, solid

Post navigation

Previous Post: Liskov Substitution Principle
Next Post: Dependency Inversion Principle

More Related Articles

Forward_list in C++ STL C++
Single Responsibility Principle C++
Deque in C++ STL C++
Open-Closed Principle C++
Socket Programming C++
List in C++ STL C++

Comments (6) on “Interface Segregation Principle(ISP)”

  1. oyofuvux says:
    July 22, 2022 at 5:44 pm

    http://slkjfdf.net/ – Eyohic Oninzeh cob.bvtf.thecodepathshala.com.hls.zr http://slkjfdf.net/

    Reply
  2. izomaqodes says:
    July 22, 2022 at 7:02 pm

    http://slkjfdf.net/ – Upiorih Afebuz ekm.dxkx.thecodepathshala.com.nsr.pd http://slkjfdf.net/

    Reply
  3. ewipidi says:
    July 23, 2022 at 12:12 am

    http://slkjfdf.net/ – Uduteju Ijagexe zhe.yavr.thecodepathshala.com.fxl.ja http://slkjfdf.net/

    Reply
  4. Israel-lady נערות ליווי says:
    July 28, 2022 at 4:00 pm

    I was pretty pleased to discover this great site. I want to to thank you for ones time due to this fantastic read!! I definitely appreciated every part of it and I have you book marked to look at new stuff on your web site.

    Reply
  5. נערות ליווי באילת לבילוי משותף says:
    August 4, 2022 at 9:45 pm

    I was very happy to discover this great site. I need to to thank you for your time for this particularly wonderful read!! I definitely liked every part of it and I have you bookmarked to check out new information on your blog.

    Reply
  6. נערות ליווי romantik 69 says:
    August 14, 2022 at 2:31 pm

    Good day! I simply want to offer you a big thumbs up for the excellent info youve got right here on this post. Ill be coming back to your site for more soon.

    Reply

Leave a Reply to ewipidi Cancel reply

Your email address will not be published. Required fields are marked *

Archives

  • August 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • August 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • September 2023
  • February 2023
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021

Categories

  • Algo
  • Array in C
  • C Programming
  • C++
  • C++
  • Company Wise
  • Competitive Programming
  • Design Pattern
  • DS
  • DS & Algo
  • Fast and Slow Pointer
  • fixed size sliding window
  • General
  • GFG
  • GFG PTOD
  • Interview Questions
  • Leetcode Problems
  • Leetcode PTOD
  • Leetcode Top Interview 150
  • LLD
  • Low-level design
  • Mastering in C programming (Crash Course)
  • Programming
  • Roadmap
  • Setup
  • Setup
  • sliding window
  • SOLID Principle
  • STL
  • string in c
  • System Design
  • Top X

Tags

algorithm array bactracking basic c++ coding interview C Programming Crash Course data structure and algorithm design pattern dsa easy Fixed size sliding window fubctions GFD gfg GFG PTOD hard jump game LC PTOD leetcode Leetcode PTOD Leetcode Top Interview 150 LLD loop loops Low-level design Mastering C Programming in 15 Days matrix medium recursion rotate array searching&sorting sliding window solid STL string string in c sunction in c system design Template in C++ Top Top 20 coding patterns to master MAANG Interview Top interview 150

Queue #codinginterview #education #databaseconcepts #algorithmanalysis #spacecomplexity #dsa
Want to clearly understand Time Complexity and Space Complexity of Queue for DSA and coding interviews? 🤔
In this video, we explain Queue Data Structure Complexity using simple examples, Big-O notation, and interview-focused concepts.

🚀 What You’ll Learn in This Video:

What is a Queue in Data Structures?

Queue Principle: FIFO (First In First Out)

Types of Queue (Simple, Circular, Priority, Deque)

Time Complexity of Queue Operations

Enqueue → O(1)

Dequeue → O(1)

Front / Peek → O(1)

Rear → O(1)

Search → O(n)

Space Complexity of Queue

Queue Implementation (Array vs Linked List)

Real-World Applications of Queue

Most Asked Queue Interview Questions

🎯 Why Watch This Video?
✔ Easy explanation of Big O Notation
✔ Important for Coding Interviews & Exams
✔ Useful for C, C++, Java, Python learners
✔ Beginner-friendly & exam-oriented

📌 Who Should Watch?

DSA Beginners

Computer Science Students

Coding Interview Aspirants

Competitive Programmers

📈 Master DSA Concepts Step-by-Step!

👍 Like | 💬 Comment | 🔔 Subscribe for more Data Structures & Algorithms content


🔖 Tags:
time complexity of queue
space complexity of queue
queue data structure
queue operations time complexity
big o notation queue
queue using array
queue using linked list
circular queue time complexity
queue interview questions
dsa queue tutorial
time and space complexity of queue,
time and space complexity problems,
time and space complexity python,
time and space complexity in ds,
time and space complexity of algorithm,
time and space complexity data structure,
calculating time and space complexity,
time and space complexity examples,
time and space complexity of dfs,
time and space complexity of an algorithm,
time and space complexity in c,
time and space complexity in c++,
finding time complexity and space complexity,
data structures time and space complexity,
data structure time and space complexity,
time and space complexity in dsa,
time and space complexity explained,
calculate space and time complexity,
space and time complexity in dsa,
time and space complexity of algorithms,
space and time complexity dsa,
time and space complexity algorithm,
calculate time and space complexity,
how to find time and space complexity of algorithms


🔖 Hashtags:

#QueueDataStructure
#TimeComplexity
#SpaceComplexity
#BigONotation
#DSA
#CodingInterview
#LearnDSA
#Programming
#ComputerScience
🔥 Time & Space Complexity of Queue | Queue Data Structure | Big-O Explained
Want to master Time Complexity and Space Complexity of Stack for DSA and coding interviews? 🤔
In this video, we explain Stack Data Structure Complexity using simple examples, Big-O notation, and interview-oriented explanations.

🚀 What You’ll Learn in This Video:

What is a Stack in Data Structures?

Stack Principle: LIFO (Last In First Out)

Time Complexity of Stack Operations

Push → O(1)

Pop → O(1)

Peek / Top → O(1)

Search → O(n)

Space Complexity of Stack

Stack Implementation (Array vs Linked List)

Real-World Applications of Stack

Common Stack Interview Questions

🎯 Why Watch This Video?
✔ Clear explanation of Big O Notation
✔ Essential for DSA Interviews & Exams
✔ Helpful for C, C++, Java, Python learners
✔ Beginner-friendly & concept-focused

📌 Who Should Watch?

DSA Beginners

Computer Science Students

Coding Interview Aspirants

Competitive Programmers

📈 Build Strong DSA Foundations – One Concept at a Time!

👍 Like | 💬 Comment | 🔔 Subscribe for more Data Structures & Algorithms videos


🔖 Tags:
time complexity of stack
space complexity of stack
stack data structure
stack operations time complexity
big o notation stack
stack using array
stack using linked list
stack interview questions
dsa stack tutorial
time and space complexity of stack,
time and space complexity dsa,
time and space complexity problems,
time and space complexity javascript,
time and space complexity in ds,
space and time complexity dsa,
time and space complexity of the algorithm,
space complexity and time complexity,
space and time complexity explained,
time complexity and space complexity explained,
time complexity and space complexity dsa,
time and space complexity in c++,
dsa space and time complexity,
time and space complexity explained,
time and space complexity of an algorithm,
time and space complexity in c,
finding time complexity and space complexity,
dfs time and space complexity,
space and time complexity java,
time and space complexity js,
data structures time and space complexity,
time and space complexity in dsa,
time and space complexity of dfs,
time and space complexity of recursion,
space and time complexity of algorithm,
space and time complexity in dsa,
time and space complexity of algorithms,
time and space complexity of algorithm,
calculating space and time complexity

🔖 Hashtags:
#StackDataStructure
#TimeComplexity
#SpaceComplexity
#BigONotation
#DSA
#CodingInterview
#LearnDSA
#Programming
#ComputerScience
🔥 Time & Space Complexity of Stack | Stack Data Structure | Big-O Explained
Linked list operations and time complexity | BigO notation #education #scaling #codinginterview
📌 Array Part-5 : Time and Space Complexity of Array | Data Structures & Algorithms

Tags:
time complexity of array
space complexity of array
array data structure time complexity
big o notation array
array operations time complexity
dsa array tutorial
array interview questions
data structures and algorithms

time and space complexity of array,
time and space complexity python,
time and space complexity dsa,
time and space complexity examples,
time and space complexity in recursion,
time and space complexity of algorithm,
data structures time and space complexity,
space and time complexity java,
time complexity and space complexity examples,
calculate time complexity and space complexity,
time complexity and space complexity python,
time complexity and space complexity explained,
calculate space and time complexity,
time and space complexity in c++,
time and space complexity in ds,
time and space complexity problems,
finding time complexity and space complexity,
algorithms time and space complexity,
time complexity of array,
space and time complexity dsa,
data structure time and space complexity,
time and space complexity js,
big o notation time and space complexity,
time and space complexity explained,
space and time complexity in dsa,
space and time complexity python,
time complexity and space complexity dsa,
calculate time and space complexity,
time and space complexity algorithm,
time and space complexity java

🔖 Hashtags:
#Array #TimeComplexity #SpaceComplexity #DSA #BigONotation #DataStructures #CodingInterview #ProgrammingBasics
#ArrayDataStructure
#TimeComplexity
#SpaceComplexity
#BigONotation
#DSA
#CodingInterview
#LearnDSA
#Programming
#ComputerScience
📌 Array Part-5 : Time and Space Complexity of Array | Data Structures & Algorithms
Struggling to understand Time Complexity and Space Complexity of Linked Lists? 🤔
This video explains Linked List Data Structure Complexity in a simple, interview-focused, and beginner-friendly way using Big-O notation and real examples.

🚀 What You’ll Learn in This Video:

What is a Linked List in Data Structures?

Types of Linked List (Singly, Doubly, Circular)

Time Complexity of Linked List Operations

Accessing Elements → O(n)

Searching → O(n)

Insertion → O(1) / O(n)

Deletion → O(1) / O(n)

Space Complexity of Linked List

Linked List vs Array (Complexity Comparison)

Most Asked DSA Interview Questions on Linked List

🎯 Why Watch This Video?
✔ Clear explanation of Big O Notation
✔ Perfect for Coding Interviews & Exams
✔ Useful for C, C++, Java, Python learners
✔ Beginner to Intermediate friendly

📌 Who Should Watch?

DSA Beginners

Computer Science Students

Coding Interview Aspirants

Competitive Programmers

📈 Master DSA Step-by-Step – Build Strong Foundations!

👍 Like | 💬 Comment | 🔔 Subscribe for more DSA & Programming videos

📌 Tags:
time complexity of linked list
space complexity of linked list
linked list data structure
linked list operations time complexity
big o notation linked list
linked list vs array
dsa linked list tutorial
linked list interview questions
linked list, time complexity, space complexity, data structures, algorithm analysis, big o notation, linked list operations, runtime efficiency, algorithm optimization, programming interviews, coding algorithms, data structure efficiency, linked list implementation, computational complexity, linked list design, performance analysis
time and space complexity of linked list,
time complexity of linked list,
time and space complexity of dfs,
time and space complexity of recursion,
time and space complexity in ds


🔖 Hashtags:
#Array #TimeComplexity #SpaceComplexity #DSA #BigONotation #DataStructures #CodingInterview #ProgrammingBasics
#ArrayDataStructure
#TimeComplexity
#SpaceComplexity
#BigONotation
#DSA
#CodingInterview
#LearnDSA
#Programming
#ComputerScience
#LinkedList
#TimeComplexity
#SpaceComplexity
#BigONotation
#DSA
#CodingInterview
#LearnDSA
#DataStructures
#Programming
🔥 Time & Space Complexity of Linked List | DSA Made Easy | Big-O Explained
📌 Array Part-4 : Time and Space Complexity of Array | Data Structures & Algorithms

Tags:
time complexity of array
space complexity of array
array data structure time complexity
big o notation array
array operations time complexity
dsa array tutorial
array interview questions
data structures and algorithms

time and space complexity of array,
time and space complexity python,
time and space complexity dsa,
time and space complexity examples,
time and space complexity in recursion,
time and space complexity of algorithm,
data structures time and space complexity,
space and time complexity java,
time complexity and space complexity examples,
calculate time complexity and space complexity,
time complexity and space complexity python,
time complexity and space complexity explained,
calculate space and time complexity,
time and space complexity in c++,
time and space complexity in ds,
time and space complexity problems,
finding time complexity and space complexity,
algorithms time and space complexity,
time complexity of array,
space and time complexity dsa,
data structure time and space complexity,
time and space complexity js,
big o notation time and space complexity,
time and space complexity explained,
space and time complexity in dsa,
space and time complexity python,
time complexity and space complexity dsa,
calculate time and space complexity,
time and space complexity algorithm,
time and space complexity java

🔖 Hashtags:
#Array #TimeComplexity #SpaceComplexity #DSA #BigONotation #DataStructures #CodingInterview #ProgrammingBasics
#ArrayDataStructure
#TimeComplexity
#SpaceComplexity
#BigONotation
#DSA
#CodingInterview
#LearnDSA
#Programming
#ComputerScience
📌 Array Part-4 : Time and Space Complexity of Array | Data Structures & Algorithms
when to use SQL and When NoSQL? #shorts #codinginterview #education #scaling #tranding
Confused between SQL and NoSQL databases? 🤔
In this video, we explain SQL vs NoSQL in detail, covering differences, use cases, real-world examples, and interview questions to help you choose the right database for your application.

🚀 What You’ll Learn in This Video:

What is SQL Database?

What is NoSQL Database?

SQL vs NoSQL – Key Differences

Structure & Schema

Data Model

Scalability

Performance

Consistency vs Availability

When to Use SQL Databases

When to Use NoSQL Databases

Real-World Use Cases & Examples

SQL vs NoSQL for Interviews & System Design

🎯 When to Use SQL?
✔ Structured data
✔ ACID transactions
✔ Banking & financial systems
✔ Complex queries & joins

🎯 When to Use NoSQL?
✔ Large-scale distributed systems
✔ Flexible / unstructured data
✔ High scalability & performance
✔ Real-time apps (Chat, Social Media, IoT)

📌 Who Should Watch?

Database & Backend Beginners

Full Stack Developers

System Design Learners

Coding Interview Aspirants

📈 Understand Databases Clearly – Choose the Right One!

👍 Like | 💬 Comment | 🔔 Subscribe for more Database & DSA Concepts

🔖 Tags:
sql vs nosql
difference between sql and nosql
when to use sql vs nosql
sql vs nosql interview questions
nosql vs sql use cases
sql database vs nosql database
mongodb vs mysql
database system design
sql vs nosql,
sql vs nosql system design,
sql vs nosql database,
sql vs nosql tradeoffs,
sql vs nosql difference,
sql vs nosql examples,
sql vs nosql bytebytego,
sql vs nosql or mysql vs mongodb,
sql vs nosql fireship,
sql vs nosql vs postgresql,
sql vs nosql arpit bhayani,
sql vs nosql academind,
sql and nosql apna college,
sql vs nosql what's the difference,
sql vs nosql db,
arpit bhayani sql vs nosql,
difference between sql vs nosql,
base de datos sql vs nosql,
bytebytego sql vs nosql,
bases de datos sql vs nosql,
sql vs nosql performance,
sql and nosql course,
sql and nosql full course,
sql vs nosql which one to choose,
compare sql vs nosql databases,
choosing database sql vs nosql in system design,
when to choose sql vs nosql,
sql vs nosql database system design,
sql vs nosql database hindi,
sql vs nosql deutsch,
sql vs nosql database tamil,
sql and nosql difference,
sql and nosql difference in hindi,
sql and nosql difference in tamil,
database sql vs nosql,
sql vs nosql ventajas y desventajas,
sql vs nosql explained,
sql vs mysql vs nosql,
sql vs nosql for mongodb,
t-sql vs sql,
when to use sql vs nosql,
sql vs nosql gaurav sen,
gaurav sen sql vs nosql,
sql database vs nosql database,
sql vs nosql hindi,
hello interview sql vs nosql,
sql vs nosql in hindi,
sql vs nosql interview questions,
sql vs nosql in tamil,
sql and nosql interview questions,
sql vs nosql what is the difference,
sql vs nosql use cases,
sql vs nosql vs newsql,
pl sql vs sql,
pl sql vs mysql,
sql vs nosql shreyansh,
sql vs nosql telugu,
sql vs nosql tamil,
sql and nosql tutorial,
sql vs mongodb tamil,
sql vs nosql when to use,
sql and nosql in tamil,
what is the difference between sql and nosql,
what is sql and nosql

🔖 Hashtags:

#SQLvsNoSQL
#Databases
#BackendDevelopment
#SystemDesign
#MongoDB
#MySQL
#Programming
#CodingInterview
🔥 SQL vs NoSQL | Differences | When & Where to Use? | Database Explained
Load More... Subscribe

Recent Posts

  • Palindrome Linked List
  • Find the Duplicate Number
  • Remove Nth Node From End of List
  • Linked List Cycle II
  • Decode the string | GFG PTOD | 01 Mar| Medium level | STACK

    Recent Comments

    1. Ozie Drumgole on C program to print multiplication table of a given number
    2. Denis Rojo on C program to print multiplication table of a given number
    3. Stephania Craze on C program to print multiplication table of a given number
    4. Glayds Sharp on C program to print multiplication table of a given number
    5. Oscar Langshaw on C program to print multiplication table of a given number

    Copyright © 2026 Learn to Code and Code to Learn.

    Powered by PressBook Blog WordPress theme