• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php的工厂模式

php 搞代码 3年前 (2022-01-22) 34次浏览 已收录 0个评论
  1. 本篇文章介绍的内容是php的工厂模式,现在分享给大家,有需要的朋友可以参考一下

  2. <?php  /**  * 基本工厂模式  * */  class User {       private $username;       public function __construct($username) {           $this->username = $username;       }             public function getUser() {           return $this->username;       }   }    class userFactory {       static public function createUser() {           return new User('Jack');       }   }    $user = userFactory::createUser();echo $user->getUser();    /**  *简单工厂模式  * */  interface userProperties {      function getUsername();      function getGender();      function getJob();  }  class User implements userProperties{      private $username;      private $gender;      private $job;      public function __construct($username, $gender, $job) {          $this->username = $username;          $this->gender = $gender;          $this->job = $job;      }        public function getUsername() {          return $this->username;      }        public function getGender() {          return $this->gender;      }        public function getJob() {          return $this->job;      }  }    class userFactory {      static public function createUser($properties = []) {          return new User($properties['username'], $properties['gender'], $properties['job']);      }  }    $employers = [      ['username' => 'Jack', 'gender' => 'male', 'job' => 'coder'],      ['username' => 'Marry', 'gender' => 'female', 'job' => 'designer'],      ];  $user = userFactory::createUser($employers[0]);  echo $user->getUsername();    /**  * 工厂方法模式  **/  interface userProperties {      function getUsername();      function getGender();      function getJob();  }    interface createUser {      function create($properties);  }    class User implements userProperties{      private $username;      private $gender;      private $job;      public function __construct($username, $gender, $job) {          $this->username = $username;          $this->gender = $gender;          $this->job = $job;      }        public function getUsername() {          return $this->username;      }        public function getGender() {          return $this->gender;      }        public function getJob() {          return $this->job;      }  }    class userFactory {      private $user;      public function __construct($properties = []) {          $this->user =  new User($properties['username'], $properties['gender'], $properties['job']);      }        public function getUser() {          return $this->user;      }  }    class FactoryMan implemen<i>本文@来#源gaodai$ma#com搞$$代**码网</i><strong>搞代gaodaima码</strong>ts createUser {      function create($properties) {          return new userFactory($properties);       }  }     class FactoryWoman implements createUser {      function create($properties) {          return new userFactory($properties);      }  }    class clientUser {      static public function getClient($properties) {          $fac = new FactoryMan;          $man = $fac->create($properties);          echo $man->getUser()->getUsername();      }  }    $employers = [      ['username' => 'Jack', 'gender' => 'male', 'job' => 'coder'],      ['username' => 'Marry', 'gender' => 'female', 'job' => 'designer'],      ];  $user = clientUser::getClient($employers[0]);    /**  * 抽象工厂模式  * */    interface userProperties {      function getUsername();      function getGender();      function getJob();  }    interface createUser { //将对象的创建抽象成一个接口      function createOpen($properties);//内向创建      function createIntro($properties);//外向创建  }    class User implements userProperties{      private $username;      private $gender;      private $job;      public function __construct($username, $gender, $job) {          $this->username = $username;          $this->gender = $gender;          $this->job = $job;      }        public function getUsername() {          return $this->username;      }        public function getGender() {          return $this->gender;      }        public function getJob() {          return $this->job;      }  }    class userFactory {      private $user;      public function __construct($properties = []) {          $this->user =  new User($properties['username'], $properties['gender'], $properties['job']);      }        public function getUser() {          return $this->user;      }  }    class FactoryMan implements createUser {      function createOpen($properties) {          return new userFactory($properties);       }        function createIntro($properties) {          return new userFactory($properties);       }  }     class FactoryWoman implements createUser {      function createOpen($properties) {          return new userFactory($properties);      }        function createIntro($properties) {          return new userFactory($properties);      }  }    class clientUser {      static public function getClient($properties) {          $fac = new FactoryMan;          $man = $fac->createOpen($properties);          echo $man->getUser()->getUsername();      }  }    $employers = [      ['username' => 'Jack', 'gender' => 'male', 'job' => 'coder'],      ['username' => 'Marry', 'gender' => 'female', 'job' => 'designer'],      ];  $user = clientUser::getClient($employers[0]);

相关推荐:

php模式设计之 单例模式

php模式设计之 适配器模式

以上就是php的工厂模式的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php的工厂模式
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址