首頁 > 後端開發 > php教程 > php策略模式的有关问题~下~多谢 帮改下下面的代码

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-13 10:17:53
原創
945 人瀏覽過

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

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?phpabstract 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);?>
登入後複製


------解决方案--------------------
稍微简化了你的例子,看注释应该清晰多了吧
PHP code
<?phpabstract 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>
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
function mysqli() 錯誤
來自於 1970-01-01 08:00:00
0
0
0
javascript - JS中的Function()函數對象
來自於 1970-01-01 08:00:00
0
0
0
javascript - !function()的問題
來自於 1970-01-01 08:00:00
0
0
0
javascript - 關於jquery中$(function(){})的使用。
來自於 1970-01-01 08:00:00
0
0
0
angular.js - Angularjs如何建立 公共function
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板