9 策略模式

2021-07-12 07:02:37 字數 710 閱讀 4688

思考: 如果想增加取模運算又如何操作?

想一想簡單工廠方法,是否有些相似? 又有哪些不同?

通過介面,隔離封裝

通過繼承,適應變化

工廠模式,我們著眼於得到物件,並操作物件,

策略模式,我們著重得到物件某方法的執行結果

<?php

inte***ce math

class mathadd implements math

}class mathsub implements math

}class mathmul implements math

}class mathdiv implements math

}//傳來op,製造不同物件,並且呼叫

//封裝乙個虛擬計算器

class cmath

public function calc($op1, $op2) }

$type = isset($_post['op']) ? $_post['op'] : '';

$op1 = isset($_post['op1']) ? $_post['op1'] : '';

$op2 = isset($_post['op2']) ? $_post['op2'] : '';

$cmath = new cmath($type);

echo $cmath->calc($op1, $op2);

大話設計模式 讀書筆記9策略模式

大話設計模式 讀書筆記策略模式 策略模式 定義了演算法族,分別封裝,讓他們之間可以相互替換,此模式讓演算法的變化,不會影響到使用演算法的客戶 商場收銀時,如何 使用打折還是返利,其實都是一種演算法,演算法本身是一種策略 最重要的是這些演算法是隨時都可能相互替換的,者就是變化點。封裝變化點是物件導向的...

模式 策略模式

前言 所有的設計模式都是基於程式設計屆前輩們的不斷實踐得出的解決一類問題中比較有效高效的程式設計方法。策略模式 策略模式用於解決業務中不同場景下統一行為的細微差別問題。策略模式遵循 開閉原則 舉個例子來說,在購物車功能中,結算 的時候會根據使用者的不同級別去打折,那麼打折計算 的這一行為就會有不同演...

策略模式(策略列舉)

首先定義乙個介面 package com.yecc.suanfa.strategy created by yecc on 2020 11 16 19 35 public inte ce strategy 定義三個繼承介面的類 package com.yecc.suanfa.strategy crea...