奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

php語言

PHP策略模式定義與用法

時間:2025-02-23 03:15:23 php語言 我要投稿
  • 相關推薦

PHP策略模式定義與用法

  策略模式屬于對象的行為模式。其用意是針對一組算法,將每個算法封裝到具有共同接口的獨立的類中,從而使得它們可以相互替換。下面是小編分享的PHP策略模式定義與用法,一起來看一下吧。

 

  策略模式中主要角色

  這個模式設計到三個角色:

  環境角色(Context):持有一個Strategy的引用

  抽象策略(Strategy)角色:這是一個抽象角色,通常由一個接口或抽象類實現。此角色給出所有的具體的策略類所需的接口

  具體策略(ConcreateStrategy)角色:包裝了相關的算法或行為

  使用場景

  假設現在要設計一個購物車系統,一個最簡單的情況就是把所有貨品的單價乘上數量,但是實際情況肯定比這個復雜。例如:對普通會員無折扣,對中級會員提供8折優惠,對高級會員提供7折優惠。

  根據上述描述,貨品價格是根據以下幾個算法中的一個進行的:

  對普通會員無折扣

  對中級會員8折

  對高級會員7折

  UML圖


  實現代碼:

  <?php

  /**

  * 策略抽象類

  * @author wzy

  *

  */

  interface Strategy

  {

  public function calPrice ($price);

  }

  /**

  * 普通會員策略類

  *

  * @author wzy

  *

  */

  class PrimaryStrategy implements Strategy

  {

  public function calPrice ($price)

  {

  echo "普通會員無折扣";

  return $price;

  }

  }

  /**

  * 中級會員策略類

  *

  * @author wzy

  *

  */

  class MiddleStrategy implements Strategy

  {

  public function calPrice ($price)

  {

  echo "中級會員8折優惠";

  return $price * 0.8;

  }

  }

  /**

  * 高級會員策略類

  *

  * @author wzy

  *

  */

  class HighStrategy implements Strategy

  {

  public function calPrice ($price)

  {

  echo "高級會員7折優惠";

  return $price * 0.7;

  }

  }

  /**

  * Context實現類

  *

  * @author wzy

  *

  */

  class Price

  {

  /**

  * 具體的策略類對象

  *

  * @var object

  */

  private $strategyInstance;

  /**

  * 構造函數,傳入一個具體的策略對象

  *

  * @param object $instance

  */

  public function __construct ($instance)

  {

  $this->strategyInstance = $instance;

  }

  /**

  * 計算貨品的價格

  *

  * @param double $price

  */

  public function quote ($price)

  {

  return $this->strategyInstance->calPrice($price);

  }

  }

  /**

  * 客戶端操作

  */

  $high = new HighStrategy();

  $priceClass = new Price($high);

  $price = $priceClass->quote(400);

  echo $price;

  ?>

  回顧策略模式

  策略模式的重心不是如何實現算法,而是如何組織、調用這些算法,從而讓程序結構更靈活,具有更好的擴展性和維護性

  算法的平等性

  策略模式一個很大的特點就是各個策略算法的平等性。對于一系列具體的策略算法,大家的地位是一樣的,這樣才能實現算法之間的互相轉換

  運行時策略的唯一性

  運行期間,策略模式在每一個時刻只能使用一個具體的策略實現對象,雖然可以動態地在不同的策略實現中切換,但是同時只有一個。


【PHP策略模式定義與用法】相關文章:

php自定義錯誤處理用法實例09-05

php變量定義方法08-12

PHP內部函數的定義07-04

php學習之php預定義變量07-29

php中數組的定義方法08-12

php用法有哪些06-16

PHP里OR的用法舉例08-29

PHP函數的區別及用法10-27

PHP引用(符號)的用法10-21

主站蜘蛛池模板: 久治县| 黄冈市| 临潭县| 仁布县| 玉环县| 筠连县| 宜君县| 勐海县| 紫云| 裕民县| 沙洋县| 个旧市| 天水市| 榆树市| 贵溪市| 大洼县| 北宁市| 梨树县| 鸡西市| 门源| 和田市| 宁强县| 随州市| 郯城县| 泉州市| 应城市| 吉木萨尔县| 荔浦县| 柘荣县| 通化县| 涟源市| 三门县| 丰顺县| 兴化市| 乡城县| 东城区| 尼玛县| 砀山县| 外汇| 天等县| 顺义区|