zoukankan      html  css  js  c++  java
  • 建造者模式

    什么是建造者模式
    建造者模式主要是为了消除其它对象复杂的创建过程。
    设计场景
    有一个用户的UserInfo类,创建这个类,需要创建用户的姓名,年龄,金钱等信息,才能获得用户具体的信息结果。
    创建一个UserInfoBuilder 用户建造者类,这个类,将UserInfo复杂的创建姓名,年龄,金钱等操作封装起来,简化用户类的创建过程
    代码:UserInfo类,创建UserInfo类是复杂的,痛苦的。

    //建造者模式,目的是消除其它对象复杂的创建过程 
     
    /* 描述一个用户的类,包含用户姓名,年龄,金钱 */ 
    class UserInfo { 
     
        protected $userName = '';   
        protected $userAge = ''; 
        protected $userMoney = ''; 
     
        public function setUserName($userName) { 
            $this->userName = $userName; 
        }    
         
        public function setUserAge($userAge) { 
            $this->userAge = $userAge; 
        }    
         
        public function setUserMoney($userMoney) { 
            $this->userMoney = $userMoney; 
        } 
         
        public function getPeople() { 
            echo "这个人的姓名是:" . $this->setUserName . ',年龄是:'  . $this->userAge . ', 金钱:' . $this->userMoney; 
        } 
    } 
    /* 实例化,并且创建这个用户的时候,是很痛苦的,需要设置用户名,年龄和金钱*/ 
    $peopleInfo = array( 
        'userName' => 'initphp', 
        'userAge' => 28, 
        'userMoney' => '100元' 
        ); 
    $UserInfo = new UserInfo; 
    //下面需要一步步的设置用户信息,才能得到用户详细信息,过程纠结而痛苦 
    $UserInfo->setUserName($peopleInfo['userName']);  
    $UserInfo->setUserAge($peopleInfo['userAge']); 
    $UserInfo->setUserMoney($peopleInfo['userMoney']); 
    $UserInfo->getPeople(); 
    代码:UserInfoBuilder 用户信息建造者类,将UserInfo的创建过程封装掉,开发者使用起来心情舒畅
    [php] 
    <?php 
    //建造者模式,目的是消除其它对象复杂的创建过程 
    include("UserInfo.php"); 
    class UserInfoBuilder { 
        protected $obj; 
         
        public function __construct() { 
            $this->obj = new UserInfo; 
        } 
         
        public function buildPeople($peopleInfo) { 
            $this->obj->setUserName($peopleInfo['userName']); 
            $this->obj->setUserAge($peopleInfo['userAge']); 
            $this->obj->setUserMoney($peopleInfo['userMoney']); 
        }  
         
        public function getPeople() { 
            $this->obj->getPeople(); 
        } 
    } 
     
    /* 创建过程被封装了,用户使用简单了 */ 
    $peopleInfo = array( 
        'userName' => 'initphp', 
        'userAge' => 28, 
        'userMoney' => '100元' 
        ); 
    $UserInfoBuilder = new UserInfoBuilder; 
    $UserInfoBuilder->buildPeople($peopleInfo); //直接一个build 
    $UserInfoBuilder->getPeople();
  • 相关阅读:
    linux service
    linux发行版的用户交互
    找出消耗CPU最高的进程对应的SQL语句
    视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的差异
    linux下查看最消耗CPU、内存的进程
    oracle10g_v$sqltext之对等视图v$sqltext_with_newlines
    【Linux】date命令用法详解(日期格式)
    ORACLE数据库查看执行计划的方法
    Linux Shell常用技巧(八) 系统运行状况
    MySQL要导出成excel的方法
  • 原文地址:https://www.cnblogs.com/tangchuanyang/p/5586826.html
Copyright © 2011-2022 走看看