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

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

Jun 13, 2016 pm 01:35 PM
class function public quot

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

PHP code
<!--

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-&gt;usewq(xiaoqiang);
$chperson-&gt;studywx(studtq);
$amperson=new amperson();
$amperson-&gt;studywx(studyw);
$amperson-&gt;usewq(xiaoqiang);
$amperson-&gt;studywx(qiang);


?&gt;
登入後複製


------解决方案--------------------
稍微简化了你的例子,看注释应该清晰多了吧
PHP code
<?php abstract class person{
    abstract public function speak();
    public $a;
    public $wq;
    public function studywx($wx){
         $wx->studywx();
    }
    public function usewq($wq){
        $wq-&gt;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-&gt;studywx(new studyw()); //给本如来神掌学
$chiness-&gt;usewq(new jian());//给他把倚天剑

$american=new amperson();//上来个美国人
$american-&gt;studywx(new studtq());//给本葵花宝典学
$american-&gt;usewq(new qiang());//给他个破洋枪 <div class="clear">
                 
              
              
        
            </div>
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Python中的class類別和method方法的使用方法 Python中的class類別和method方法的使用方法 Apr 21, 2023 pm 02:28 PM

Python中的class類別和method方法的使用方法

function是什麼意思 function是什麼意思 Aug 04, 2023 am 10:33 AM

function是什麼意思

iOS的developer版和public版有什麼不同? iOS的developer版和public版有什麼不同? Mar 01, 2024 pm 12:55 PM

iOS的developer版和public版有什麼不同?

使用jQuery替換元素的class名稱 使用jQuery替換元素的class名稱 Feb 24, 2024 pm 11:03 PM

使用jQuery替換元素的class名稱

python中class是什麼意思 python中class是什麼意思 May 21, 2019 pm 05:10 PM

python中class是什麼意思

SpringBoot怎麼透過自訂classloader加密保護class文件 SpringBoot怎麼透過自訂classloader加密保護class文件 May 11, 2023 pm 09:07 PM

SpringBoot怎麼透過自訂classloader加密保護class文件

java的預先定義Class物件的方法 java的預先定義Class物件的方法 Jul 01, 2023 pm 06:41 PM

java的預先定義Class物件的方法

PHP Class用法詳解:讓你的程式碼更清楚易讀 PHP Class用法詳解:讓你的程式碼更清楚易讀 Mar 10, 2024 pm 12:03 PM

PHP Class用法詳解:讓你的程式碼更清楚易讀

See all articles