ホームページ > バックエンド開発 > PHPチュートリアル > PHP ストラテジーモードに関する問題 ~次へ~ 以下のコードの修正にご協力いただきありがとうございます

PHP ストラテジーモードに関する問題 ~次へ~ 以下のコードの修正にご協力いただきありがとうございます

WBOY
リリース: 2016-06-13 13:35:20
オリジナル
880 人が閲覧しました

PHP戦略モードの問題~~~専門家の指導~~以下のコードの修正にご協力いただきありがとうございます
武術の学習と武器の使用をインターフェースに、動作をクラスにしましたが、どう使っても非常に汚いですそれ、専門家、アドバイスをください。

PHP コード
<!--

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);


?>
ログイン後にコピー


-----解決策----------- --------
例を少し簡略化しました。コメント
PHP コード
 を見ると、より明確になるはずです。
<?php
抽象クラスの人{
    抽象パブリック関数 speech();
    パブリック $a;
    パブリック $wq;
    パブリック関数 Studywx($wx){
         $wx->studywx();
    }
    パブリック関数 usewq($wq){
        $wq->usewq();
    }
}
クラス chperson は person{
    パブリック関数 speech(){
        echo "中国人が話しているので、みんな道を譲ってください!~";
    }
}
クラス amperson 拡張 person{
    パブリック関数 speech(){
        echo "アメリカ人は「チャーピング!~」と言っています。
    }
}

インターフェイス istudy{
    パブリック関数studywx();
}
クラス Studyw は istudy{ を実装します
    パブリック関数 Studywx(){
        「如来掌」をエコーする。
    }
}
クラス stacktq は istudy{ を実装します
    パブリック関数 Studywx(){
        「ひまわりコレクション」をエコーし​​ます。
    }
}

インターフェイス iwq{
    パブリック関数 usewq();
}
クラス jian は iwq{ を実装します
    パブリック関数 usewq(){
        「永遠の剣」をエコーし​​ます。
    }
}
クラス qiang は iwq{ を実装します
    パブリック関数 usewq(){
        「外国の銃」をエコーし​​ます。
    }
}

$chiness=new chperson();//中国人が来た
$chiness->studywx(newstudyw()); //この如来に教訓を与えてください
$chiness->usewq(new jian());//彼に天の剣を与えてください

$american=new amperson();//アメリカ人が来た
$american->studywx(new stacktq());//このひまわりブックで勉強しましょう
$american->usewq(new qiang());//彼に外国製の銃を与えてください <div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート