Maison > développement back-end > tutoriel php > php策略模式的有关问题~下~多谢 帮改下下面的代码

php策略模式的有关问题~下~多谢 帮改下下面的代码

WBOY
Libérer: 2016-06-13 13:35:20
original
882 Les gens l'ont consulté

php策略模式的问题~~~高手指点下~~谢谢 帮改下下面的代码
我把学武术 和使用武器做成了接口,行为做成了类 但怎么用都是很乱,,高手指点下。完了立刻给分

PHP code

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

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

--><?php abstract class person{

     

    abstract public  function speak();

    public $a;

    public $wq;

    public function studywx($wx){

        $a=new $wx;

        return $a;

    }

    public function usewq($wq){

        $a=new $wq;

        return $wq;

    }

}

class chperson extends  person{

    public function speak(){

        echo "中国人在说话,各路让行!~";

    }

}

class amperson extends  person{

    public function speak(){

        echo "美国人在说,叽叽喳喳!~";

    }

}

class enperson extends  person{

    public function speak(){

        echo "英国人在叫,汪汪汪~";

    }

}

interface istudy{

    public function studywx();

    public function studyyy();

}

class studyw implements istudy{

    public function studywx(){

        echo "学习武术";

    }

}

class studtq implements istudy{

    public function studywx(){

        echo "学习泰拳";

    }

}

interface iwq{

    public function usewq();

}

class jian implements iwq{

    public function usewq(){

            echo "用剑"

        }

 

}

class qiang implements iwq{

    public function usewq(){

            echo "用洋枪"

        }

 

}

class xiaoqiang implements iwq{

    public function usewq(){

            echo "用小米加布枪"

        }

 

}

$chperson=new chperson();

$chperson->studywx(studtq);

$chperson->usewq(xiaoqiang);

$chperson->studywx(studtq);

$amperson=new amperson();

$amperson->studywx(studyw);

$amperson->usewq(xiaoqiang);

$amperson->studywx(qiang);

 

 

?>

Copier après la connexion


------解决方案--------------------
稍微简化了你的例子,看注释应该清晰多了吧
PHP code

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

58

59

60

61

62

<?php abstract class person{

    abstract public function speak();

    public $a;

    public $wq;

    public function studywx($wx){

         $wx->studywx();

    }

    public function usewq($wq){

        $wq->usewq();

    }

}

class chperson extends  person{

    public function speak(){

        echo "中国人在说话,各路让行!~";

    }

}

class amperson extends  person{

    public function speak(){

        echo "美国人在说,叽叽喳喳!~";

    }

}

 

interface istudy{

    public function studywx();

}

class studyw implements istudy{

    public function studywx(){

        echo "如来神掌";

    }

}

class studtq implements istudy{

    public function studywx(){

        echo "葵花宝典";

    }

}

 

interface iwq{

    public function usewq();

}

class jian implements iwq{

    public function usewq(){

        echo "倚天剑";

    }

}

class qiang implements iwq{

    public function usewq(){

        echo "洋枪";

    }

}

 

$chiness=new chperson();//上来个中国人

$chiness->studywx(new studyw()); //给本如来神掌学

$chiness->usewq(new jian());//给他把倚天剑

 

$american=new amperson();//上来个美国人

$american->studywx(new studtq());//给本葵花宝典学

$american->usewq(new qiang());//给他个破洋枪 <div class="clear">

                  

               

               

         

            </div>

Copier après la connexion
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal