Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6988407
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T19:04:40+00:00 2026-05-27T19:04:40+00:00

Which is the best way to implement factory method. 1) A factory method that

  • 0

Which is the best way to implement factory method.

1) A factory method that contain all members of the model to define

class UserFactory {
    /**
     * @return UserModel
     */
    function create($firstName, $lastName, $age) {
       $user = new UserModel();
       $user->setFirstName($firstName);
       $user->setLastName($firstName);
       $user->setAge($age);
       return $user;
    }
}

// Usage example
$user = $userFactory->createUser('Yanik', 'Lupien', 99);
$userRepo->persist($user);

2) A factory method that simply create the model and return it. After we can fill the model by using the model setters.

class UserFactory {
    /**
     * @return UserModel
     */
    function create() {
       $user = new UserModel();
       return $user;
    } 
}

// Usage example
$user = $userFactory->create();
$user->setFirstName('Yanik');
$user->setLastName('Lupien');
$user->setAge(99);

$userRepo->persist($user);

3) A Factory that return a different class implementation base on a param

class MyUserFactory {

    const ADMIN = 'admin';
    const SUPER_ADMIN = 'superadmin';

    public function create($type = self::ADMIN)
    {
    switch ($type) {
    case self::SUPER_ADMIN:
        return new UserSuperAdmin($options);
        break;

    case self::ADMIN:
    default:
        return new UserAdmin($options);
        break;
    }
}

// Usage 
$user = $myUserFactory->create(MyUserFactory::SUPER_ADMIN);

if ($user instanceof UserSuperAdmin) {
   $user->setSuperAdminProperties();
}

if ($user instanceof UserAdmin) {
   $user->setAdminProperties();
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T19:04:40+00:00Added an answer on May 27, 2026 at 7:04 pm

    The way I’ve always seen the factory pattern applied is when there are multiple types of, say, users. For example, admin and superadmin. You could have a factory method like so:

    // within a class named "User" for example
    const ADMIN = 'admin';
    const SUPER_ADMIN = 'superadmin';
    
    // ...
    
    public static function factory($type = 'admin')
    {
        switch ($type) {
            case self::SUPER_ADMIN:
                return new UserSuperAdmin();
                break;
    
            case self::ADMIN:
            default:
                return new UserAdmin();
                break;
        }
    }
    

    Both – or ANY for that matter – of the User classes would implement some sort of interface that defines those getters and setters you were using like setFirstName() and setAge() for example.

    You could also define an $options array or something to pass along to each of their constructors to instantiate all of those fields right away for you.

    public static function factory($type = 'admin', $options = array())
    {
        switch ($type) {
            case self::SUPER_ADMIN:
                return new UserSuperAdmin($options);
                break;
    
            case self::ADMIN:
            default:
                return new UserAdmin($options);
                break;
        }
    }
    

    Then, here is an example of one of the contructors:

    class UserAdmin implements IUserInterface // for example
    {
        public function __construct($options)
        {
            // do something with the options array
        }
    }
    

    Then when you instantiate it, it’s as simple as something like this:

    $user = User::factory('admin');
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

What is the best way to name variables which contain multiple words? After going
What is the best way to implement an interface that combines some instances of
Which is the best way to implement a sparse vector in Java? Of course
Which is the best way to implement on Cocoa Touch the unread counts on
Which of the following is the best way to implement a poco? Option 1:
What's the best way to implement user controls that require AJAX callbacks? I want
In short: what is the best way to design and implement a factory+plugin mechanism,
Which is the best way to implement my own django.contrib.admin.sites.AdminSite ? Actually I get
Which is the best way to implement a logoff button in Asp.Net? I am
I have a factory class that decides which of four available subclasses it should

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.