Bird
Raised Fist0
PHPprogramming~5 mins

Factory pattern in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the Factory pattern in PHP?
The Factory pattern is a design pattern that creates objects without exposing the creation logic to the client. It provides a method to create objects based on input or conditions, helping to keep code flexible and easy to maintain.
Click to reveal answer
beginner
Why use the Factory pattern instead of creating objects directly?
Using the Factory pattern helps separate object creation from usage. This makes code easier to change, test, and extend because the client code does not depend on specific classes but on interfaces or abstract classes.
Click to reveal answer
intermediate
In the Factory pattern, what role does the factory class play?
The factory class contains a method that decides which class to instantiate and returns the created object. It hides the details of object creation from the client.
Click to reveal answer
beginner
What is a simple example of a Factory pattern in PHP?
A simple example is a ShapeFactory class with a method createShape($type) that returns a Circle, Square, or Triangle object based on the $type parameter. The client calls createShape without knowing the details of each shape class.
Click to reveal answer
intermediate
How does the Factory pattern improve code maintenance?
It centralizes object creation in one place. When you add new types or change creation logic, you only update the factory, not all client code. This reduces errors and makes the system easier to extend.
Click to reveal answer
What does the Factory pattern mainly help with?
AHandling user input validation
BImproving database queries
CStyling HTML elements
DCreating objects without exposing creation logic
In PHP, where is the object creation logic placed in the Factory pattern?
AIn the database
BInside the factory class
CIn the client code
DIn the HTML template
Which of these is a benefit of using the Factory pattern?
AEasier to change object creation without affecting client code
BFaster execution of SQL queries
CBetter CSS styling
DSimplifies user authentication
What would a factory method typically return?
AA CSS stylesheet
BA string of HTML
CAn object instance
DA database connection
Which design principle does the Factory pattern support?
AEncapsulation of object creation
BDirect manipulation of global variables
CHardcoding class names in client code
DMixing UI and business logic
Explain the Factory pattern and why it is useful in PHP programming.
Think about how you can create objects without the client knowing the details.
You got /3 concepts.
    Describe a simple example of implementing the Factory pattern in PHP.
    Imagine a shape factory that creates different shapes based on input.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the Factory Pattern in PHP?
      easy
      A. To create objects without exposing the creation logic to the client
      B. To store data in a database
      C. To handle user input validation
      D. To perform mathematical calculations

      Solution

      1. Step 1: Understand the role of the Factory Pattern

        The Factory Pattern is designed to create objects while hiding the details of how they are created.
      2. Step 2: Compare options with the pattern's purpose

        Only To create objects without exposing the creation logic to the client describes creating objects without exposing creation logic, which matches the Factory Pattern.
      3. Final Answer:

        To create objects without exposing the creation logic to the client -> Option A
      4. Quick Check:

        Factory Pattern = Object creation hiding [OK]
      Hint: Factory pattern hides object creation details [OK]
      Common Mistakes:
      • Confusing factory pattern with database operations
      • Thinking it handles input validation
      • Assuming it performs calculations
      2. Which of the following is the correct way to define a factory method in PHP?
      easy
      A. public static function create() {}
      B. function create() {}
      C. public function create() {}
      D. private function create() {}

      Solution

      1. Step 1: Identify typical factory method signature

        Factory methods are often static so they can be called without creating an instance.
      2. Step 2: Check options for static keyword

        Only public static function create() {} uses public static function create(), which is the common factory method style.
      3. Final Answer:

        public static function create() {} -> Option A
      4. Quick Check:

        Factory method is usually static [OK]
      Hint: Factory methods are usually static for easy access [OK]
      Common Mistakes:
      • Omitting static keyword for factory methods
      • Using private visibility which blocks access
      • Not specifying visibility (defaults to public but less clear)
      3. What will be the output of the following PHP code?
      class Book { }
      class ProductFactory {
      public static function create($type) {
      if ($type === 'Book') {
      return new Book();
      }
      return null;
      }
      }
      $product = ProductFactory::create('Book');
      echo get_class($product);
      medium
      A. null
      B. ProductFactory
      C. Book
      D. Error: Class not found

      Solution

      1. Step 1: Analyze the factory method call

        The call ProductFactory::create('Book') checks if the type is 'Book' and returns a new Book object.
      2. Step 2: Check the output of get_class

        Since the returned object is an instance of Book, get_class($product) returns "Book".
      3. Final Answer:

        Book -> Option C
      4. Quick Check:

        Factory returns Book object, get_class = Book [OK]
      Hint: Factory returns object; get_class shows its class name [OK]
      Common Mistakes:
      • Expecting factory class name instead of product class
      • Assuming null is returned
      • Thinking code throws error due to missing class
      4. Identify the error in this factory pattern implementation:
      class Car {}
      class VehicleFactory {
      public static function create($type) {
      if ($type = 'Car') {
      return new Car();
      }
      return null;
      }
      }
      medium
      A. Missing return type declaration
      B. Using assignment (=) instead of comparison (==) in the if condition
      C. Class Car is not defined
      D. Factory method should not be static

      Solution

      1. Step 1: Check the if condition syntax

        The condition uses = which assigns 'Car' to $type instead of comparing it.
      2. Step 2: Understand impact of assignment in condition

        Assignment always returns true, so the if block always runs regardless of input, which is a logic error.
      3. Final Answer:

        Using assignment (=) instead of comparison (==) in the if condition -> Option B
      4. Quick Check:

        Use == for comparison, not = [OK]
      Hint: Use == for comparison, not = assignment in conditions [OK]
      Common Mistakes:
      • Confusing = and == in if statements
      • Thinking static method is wrong here
      • Assuming missing return type causes error
      5. You want to extend a factory to create different types of vehicles: Car, Bike, and Truck. Which approach best follows the Factory Pattern principles in PHP?
      hard
      A. Create separate factory classes for CarFactory, BikeFactory, and TruckFactory each with their own create method
      B. Use global functions to create Car, Bike, and Truck objects directly
      C. Create one class Vehicle with properties to switch between Car, Bike, and Truck behaviors
      D. Create a VehicleFactory with a static create method that returns new Car, Bike, or Truck objects based on input

      Solution

      1. Step 1: Understand the Factory Pattern goal

        The pattern centralizes object creation in one place, hiding details from the client.
      2. Step 2: Evaluate options for best factory design

        Create a VehicleFactory with a static create method that returns new Car, Bike, or Truck objects based on input uses one factory class with a method that creates different vehicle objects based on input, which is the classic factory pattern.
      3. Step 3: Compare other options

        Create separate factory classes for CarFactory, BikeFactory, and TruckFactory each with their own create method splits factories, which is more like Abstract Factory or multiple factories, not simple Factory Pattern. Create one class Vehicle with properties to switch between Car, Bike, and Truck behaviors mixes behaviors in one class, breaking single responsibility. Use global functions to create Car, Bike, and Truck objects directly uses global functions, which is not object-oriented.
      4. Final Answer:

        Create a VehicleFactory with a static create method that returns new Car, Bike, or Truck objects based on input -> Option D
      5. Quick Check:

        Single factory method creates varied objects [OK]
      Hint: One factory method returns different objects by input [OK]
      Common Mistakes:
      • Splitting factories unnecessarily
      • Mixing multiple behaviors in one class
      • Using global functions instead of classes
      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