Bird
Raised Fist0
LLDsystem_design~5 mins

When to use which creational pattern in LLD - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main purpose of the Singleton pattern?
The Singleton pattern ensures a class has only one instance and provides a global point of access to it.
Click to reveal answer
beginner
When should you use the Factory Method pattern?
Use Factory Method when you want to create objects without specifying the exact class, allowing subclasses to decide which class to instantiate.
Click to reveal answer
intermediate
What problem does the Abstract Factory pattern solve?
Abstract Factory provides an interface to create families of related or dependent objects without specifying their concrete classes.
Click to reveal answer
intermediate
When is the Builder pattern most useful?
Builder is useful when constructing complex objects step-by-step, especially when the object has many optional parts or configurations.
Click to reveal answer
intermediate
Why use the Prototype pattern?
Prototype is used to create new objects by copying existing ones, which is helpful when object creation is costly or complex.
Click to reveal answer
Which creational pattern ensures only one instance of a class exists?
ABuilder
BFactory Method
CSingleton
DPrototype
Which pattern is best when you need to create families of related objects without specifying their concrete classes?
AAbstract Factory
BBuilder
CPrototype
DSingleton
When should you use the Builder pattern?
ATo construct complex objects step-by-step
BTo create a single instance globally
CTo clone existing objects
DTo decide which class to instantiate
Which pattern allows subclasses to decide which class to instantiate?
ASingleton
BPrototype
CBuilder
DFactory Method
What is a key benefit of the Prototype pattern?
AEnsures only one instance
BCreates objects by cloning existing ones
CBuilds complex objects step-by-step
DCreates families of related objects
Explain when to use the Singleton, Factory Method, and Builder patterns in simple terms.
Think about controlling instance count, choosing object types, and building complex objects.
You got /3 concepts.
    Describe the difference between Abstract Factory and Prototype patterns and when each is appropriate.
    Focus on object families vs cloning.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which creational pattern is best when you need only one instance of a class throughout the application?
      easy
      A. Singleton pattern
      B. Factory pattern
      C. Builder pattern
      D. Prototype pattern

      Solution

      1. Step 1: Understand the requirement for a single instance

        The question asks for a pattern that ensures only one instance of a class exists.
      2. Step 2: Match the pattern to the requirement

        Singleton pattern restricts instantiation to one object and provides a global access point.
      3. Final Answer:

        Singleton pattern -> Option A
      4. Quick Check:

        Single instance = Singleton [OK]
      Hint: Single instance? Think Singleton pattern [OK]
      Common Mistakes:
      • Confusing Factory with Singleton
      • Using Builder for single instance
      • Thinking Prototype creates single instance
      2. Which creational pattern allows creating different types of objects without specifying their concrete classes directly?
      easy
      A. Singleton pattern
      B. Factory pattern
      C. Builder pattern
      D. Adapter pattern

      Solution

      1. Step 1: Identify the pattern for flexible object creation

        The question wants a pattern that creates objects without exposing the creation logic.
      2. Step 2: Match the pattern to the description

        Factory pattern provides an interface to create objects but lets subclasses decide which class to instantiate.
      3. Final Answer:

        Factory pattern -> Option B
      4. Quick Check:

        Flexible object creation = Factory [OK]
      Hint: Flexible creation? Use Factory pattern [OK]
      Common Mistakes:
      • Choosing Singleton for flexible creation
      • Confusing Builder with Factory
      • Selecting Adapter which is not creational
      3. Consider this code snippet using the Builder pattern:
      class CarBuilder {
        constructor() {
          this.car = new Car();
        }
        setColor(color) {
          this.car.color = color;
          return this;
        }
        setWheels(wheels) {
          this.car.wheels = wheels;
          return this;
        }
        build() {
          return this.car;
        }
      }
      
      const car = new CarBuilder().setColor('red').setWheels(4).build();
      console.log(car.color, car.wheels);

      What will be the output?
      medium
      A. red 4
      B. undefined undefined
      C. red undefined
      D. Error: Car is not defined

      Solution

      1. Step 1: Check if Car class is defined

        The code uses new Car() but Car class is not defined anywhere, causing a runtime error.
      2. Step 2: Understand the consequence of missing class

        Since Car is undefined, the code throws a ReferenceError before any properties are set.
      3. Final Answer:

        Error: Car is not defined -> Option D
      4. Quick Check:

        Missing class definition = ReferenceError [OK]
      Hint: Check if all classes are defined before use [OK]
      Common Mistakes:
      • Assuming output is 'red 4' without Car class
      • Ignoring missing class error
      • Confusing Builder pattern with Factory output
      4. You have a Singleton class implemented as below:
      class Logger {
        constructor() {
          if (Logger.instance) {
            return Logger.instance;
          }
          this.logs = [];
          Logger.instance = this;
        }
        log(message) {
          this.logs.push(message);
        }
      }

      What is the main issue with this implementation?
      medium
      A. It creates a new instance every time
      B. It does not store logs properly
      C. It does not prevent multiple instances
      D. It lacks a method to retrieve logs

      Solution

      1. Step 1: Analyze Singleton enforcement

        The constructor returns existing instance if present, but the implementation does not fully prevent multiple instances.
      2. Step 2: Identify the issue in JavaScript context

        In JavaScript, this pattern works but can be bypassed by other means; better to use static method to get instance.
      3. Final Answer:

        It does not prevent multiple instances -> Option C
      4. Quick Check:

        Singleton enforcement flaw = It does not prevent multiple instances [OK]
      Hint: Singleton needs controlled instance creation [OK]
      Common Mistakes:
      • Thinking logs are not stored
      • Assuming new instance is always created
      • Ignoring missing retrieval method
      5. You are designing a system to create complex meal orders with many optional parts (drink, main dish, dessert). Which creational pattern is most suitable and why?
      hard
      A. Builder pattern, because it simplifies creating complex objects step-by-step
      B. Singleton pattern, because only one meal order should exist
      C. Factory pattern, because it creates different meal types without specifying details
      D. Prototype pattern, because it clones existing meal orders

      Solution

      1. Step 1: Understand the complexity of the object

        Meal orders have many optional parts and require step-by-step construction.
      2. Step 2: Match pattern to complex object creation

        Builder pattern is designed to build complex objects step-by-step, allowing optional parts to be added flexibly.
      3. Final Answer:

        Builder pattern, because it simplifies creating complex objects step-by-step -> Option A
      4. Quick Check:

        Complex object with options = Builder [OK]
      Hint: Complex object? Use Builder pattern [OK]
      Common Mistakes:
      • Choosing Singleton for multiple orders
      • Confusing Factory with Builder for complex objects
      • Using Prototype without cloning need
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard