php设计模式--策略模式

    策略模式就是将特定的行为封装成一个类,来适应特定的用户某些特定的情况。例如:在面向过程的开发中总是使用if...else.....这种属于硬编码的形式,当有些条件在修改的时候我们还要去调整if  else的程序 。现在就来搞一搞策略模式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
interface UserStrategy
{
    function showad();
    function showcat();
}
 
 
class Man implements UserStrategy
{
    function showad()
    {
        echo 'macbook';
    }
 
    function showcat()
    {
        echo 'mac_dev';
    }
}
 
class Woman implements UserStrategy
{
    function showad()
    {
        echo 'woman_ad';
    }
    function showcat()
    {
        echo 'woman_cat';
    }
}
 
 
class pick
{
    private $_act;
    function pickecho()
    {
        $this->_act->showcat();
        $this->_act->showad();
    }
    function setact($Strategy)
    {
        $this->_act = $Strategy;
    }
}
 
 
$pickclass = new pick();
//针对woman
$pickclass->setact(new Woman());
$pickclass->pickecho();
echo "<br/>";
//针对man
$pickclass->setact(new Man());
$pickclass->pickecho();

  

总结:

1.在代码中需要变化的地方,把它们独立出来,不要和那些不需要变化的代码混在一起;

2.针对接口编程,不针对实现编程;

3.多用组合,少用继承;

4.使用策略模式完成依赖倒置,属于解耦的过程;

posted @   ~煎饼果子~  阅读(166)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示