php设计模式--策略模式(六)

简介: php设计模式--策略模式(六)

1.策略模式,将- -组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式就是策略模式

2.实际应用举例,假如一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告

3.计算器实例

工厂模式和策略模式逻辑上的区别

<?php
//策略模式  做一个计算器
interface Math {
  public function calc($op1 ,$op2); 
}
  class MathAdd implements Math{
    public function calc($op1,$op2) {
      return $op1+$op2; 
    }
  }
  class MathSub implements Math{
    public function calc($op1,$op2) {
      return $op1-$op2 ; 
    }
  }
  class MathMul implements Math{
    public function calc($op1,$op2) {
      return $op1*$op2; 
    }
  }
/* 一般思路,根据传来0P ,制造不对对象,并且调用.
if($_ POST[ 'op']
*/
  class CMath {
    protected $calc = null ;
    public function  __construct($type){
      $calc = 'Math' . $type;
      $this->calc =new $calc();
    }
    public function calc($op1,$op2) {
      return $this->calc->calc($op1, $op2);
    }
  }
  //$type = $_POST['op']; 
  //$cmath = new CMath($type);
  //$cmath->calc($_POST['op1'],_POST['op2']);
  
  $type = 'add';
  $cmath = new CMath($type);
  echo $cmath->calc(3,5);

 

目录
相关文章
|
4天前
|
设计模式 算法
设计模式之 Strategy(策略模式)
设计模式之 Strategy(策略模式)
23 1
|
4天前
|
设计模式 算法 Java
小谈设计模式(3)—策略模式
小谈设计模式(3)—策略模式
|
2天前
|
设计模式 算法 Java
Java一分钟之-设计模式:策略模式与模板方法
【5月更文挑战第17天】本文介绍了策略模式和模板方法模式,两种行为设计模式用于处理算法变化和代码复用。策略模式封装不同算法,允许客户独立于具体策略进行选择,但需注意选择复杂度和过度设计。模板方法模式定义算法骨架,延迟部分步骤给子类实现,但过度抽象或滥用继承可能导致问题。代码示例展示了两种模式的应用。根据场景选择合适模式,以保持代码清晰和可维护。
8 1
|
4天前
|
设计模式 算法
【设计模式】阿里终面:你觉得这个例子是策略模式吗?
【设计模式】阿里终面:你觉得这个例子是策略模式吗?
9 1
|
4天前
|
设计模式 算法
大话设计模式(2)——策略模式
大话设计模式(2)——策略模式
7 1
|
4天前
|
设计模式 JavaScript 算法
js设计模式-策略模式与代理模式的应用
策略模式和代理模式是JavaScript常用设计模式。策略模式通过封装一系列算法,使它们可互换,让算法独立于客户端,提供灵活的选择。例如,定义不同计算策略并用Context类执行。代理模式则为对象提供代理以控制访问,常用于延迟加载或权限控制。如创建RealSubject和Proxy类,Proxy在调用RealSubject方法前可执行额外操作。这两种模式在复杂业务逻辑中发挥重要作用,根据需求选择合适模式解决问题。
|
4天前
|
设计模式 算法 搜索推荐
【PHP开发专栏】PHP设计模式解析与实践
【4月更文挑战第29天】本文介绍了设计模式在PHP开发中的应用,包括创建型(如单例、工厂模式)、结构型和行为型模式(如观察者、策略模式)。通过示例展示了如何在PHP中实现这些模式,强调了它们在提升代码可维护性和可扩展性方面的作用。设计模式是解决常见问题的最佳实践,但在使用时需避免过度设计,根据实际需求选择合适的设计模式。
|
4天前
|
设计模式 算法 Java
Java 设计模式:探索策略模式的概念和实战应用
【4月更文挑战第27天】策略模式是一种行为设计模式,它允许在运行时选择算法的行为。在 Java 中,策略模式通过定义一系列的算法,并将每一个算法封装起来,并使它们可以互换,这样算法的变化不会影响到使用算法的客户。
23 1
|
4天前
|
设计模式 算法 Go
[设计模式 Go实现] 行为型~策略模式
[设计模式 Go实现] 行为型~策略模式
|
4天前
|
设计模式 算法 Java
【设计模式系列笔记】策略模式
策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列的算法,将每个算法封装起来,并且使它们可以互相替换。策略模式使得算法可以独立于客户端而变化。
26 0