zoukankan      html  css  js  c++  java
  • 原型模式

    原型模式与工厂模式作用相似,都是用来创建对象的;

    与工厂模式的实现不同,原型模式是先创建一个对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时的重复初始化操作;

    原型模式适合于大对象的创建,创建一个对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可;

    入口文件index.php

    init();
    $canvas1 = clone $prototype;
    $canvas1->rect(3,6,4,12);
    $canvas1->draw();
    echo "=========================
    ";
    $canvas2 = clone $prototype;
    $canvas2->rect(1,3,2,6);
    $canvas2->draw();

    原型类LampBlog/Canvas.php,

    data = $data;
      }
      function draw() {
        foreach ($this->data as $line) {
          foreach ($line as $char) {
            echo $char;
          }
          echo "
    
    ";
        }
      }
      //绘制矩形
      function rect($a1, $a2, $b1, $b2) {
        foreach ($this->data as $k1 => $line) {
          if ($k1 < $a1 or $k1 > $a2) {
            continue;
          }
          foreach ($line as $k2 => $char) {
            if ($k2 < $b1 or $k2 > $b2) {
              continue;
            }
            $this->data[$k1][$k2] = " ";
          }
        }
      }
    }
  • 相关阅读:
    ZOJ 3556
    ZOJ 2836
    HDU 2841
    HDU 4135
    POJ 3695
    POJ 2773
    HDU 4407
    HDU 1796
    ZOJ 3688
    ZOJ 3687
  • 原文地址:https://www.cnblogs.com/yangtzewang/p/5790158.html
Copyright © 2011-2022 走看看