关于php:PHP设计模式七原型模式

54次阅读

共计 756 个字符,预计需要花费 2 分钟才能阅读完成。

原型模式

  1. 与工厂模式相似
  2. 与工厂模式实现不同,原型模式时先创立好一个原型对象,而后通过 clone 原型对象来创立新对象,免去了类创立时的初始化操作
  3. 原型模式实用于 对象创立,创立大对象开销大,每次 new 就会耗费很大,原型模式仅需内存拷贝
class Canvas {
    private $data;
    public function init($hei,$wid){for($i=0;$i<$hei;$i++){for($i=0;$i<$wid;$i++){$data[$i][$j] = "*";
            }
        }
        
        $this->data = $data;
    }
    
    
    public function rect($a1,$a2,$b1,$b2) {foreach($this->data as $k1->$line){if($k1<$a1 or $k1 > $a2) continue;
            foreach($line as $k2 => $item){if($k2<$b2 or $k2> $b2) contine;
                $this->data[$k1][$2] = ' ';
            }
        }
    }
    
    public function draw(){
        foreach ($this->data as 
        $line){foreach ($lien as $item) {echo  $item;}
            echo PHP_EOL:
        }
    }
    
}

$canvas = new Canvas1();
$canvas->init(3,6,4,12);
$canvas->draw();

// 传统,再 new 一个对象,画其余长方形

// 原型模式
$prototype = new Canvas();
$prototype->init();
$canvas2= clone $prototype; // 克隆一个, 残余的都走 clone 就能够了,不须要再 new 了
$canvas2->rect(1,3,2,6);
$canvas2->draw();

正文完
 0