Heim Backend-Entwicklung PHP-Tutorial 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->usewq(xiaoqiang);
$chperson->studywx(studtq);
$amperson=new amperson();
$amperson->studywx(studyw);
$amperson->usewq(xiaoqiang);
$amperson->studywx(qiang);


?>
Nach dem Login kopieren


------解决方案--------------------
稍微简化了你的例子,看注释应该清晰多了吧
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->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>
Nach dem Login kopieren
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Klassen und Methoden in Python So verwenden Sie Klassen und Methoden in Python Apr 21, 2023 pm 02:28 PM

Konzepte und Instanzen von Klassen und Methoden Klasse (Klasse): wird verwendet, um eine Sammlung von Objekten mit denselben Eigenschaften und Methoden zu beschreiben. Es definiert die Eigenschaften und Methoden, die jedem Objekt in der Sammlung gemeinsam sind. Objekte sind Instanzen von Klassen. Methode: In der Klasse definierte Funktion. Klassenkonstruktionsmethode __init__(): Die Klasse verfügt über eine spezielle Methode (Konstruktionsmethode) namens init(), die automatisch aufgerufen wird, wenn die Klasse instanziiert wird. Instanzvariablen: In der Deklaration einer Klasse werden Attribute durch Variablen dargestellt. Solche Variablen werden Instanzvariablen genannt. Instanziierung: Erstellen Sie eine Instanz einer Klasse, ein bestimmtes Objekt der Klasse. Vererbung: Das heißt, eine abgeleitete Klasse (derivedclass) erbt die Basisklasse (baseclass).

Was bedeutet Funktion? Was bedeutet Funktion? Aug 04, 2023 am 10:33 AM

Funktion bedeutet Funktion. Es handelt sich um einen wiederverwendbaren Codeblock mit bestimmten Funktionen. Er kann Eingabeparameter akzeptieren, bestimmte Operationen ausführen und Ergebnisse zurückgeben. Code, um die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern.

Was ist der Unterschied zwischen der Entwicklerversion und der öffentlichen Version von iOS? Was ist der Unterschied zwischen der Entwicklerversion und der öffentlichen Version von iOS? Mar 01, 2024 pm 12:55 PM

Jedes Jahr bevor Apple eine neue Hauptversion von iOS und macOS veröffentlicht, können Benutzer die Betaversion mehrere Monate im Voraus herunterladen, um sie zuerst zu testen. Da die Software sowohl von der Öffentlichkeit als auch von Entwicklern verwendet wird, hat Apple für beide Entwickler- und öffentliche Versionen herausgebracht, bei denen es sich um öffentliche Betaversionen der Entwickler-Betaversionen handelt. Was ist der Unterschied zwischen der Entwicklerversion und der öffentlichen Version von iOS? Im wahrsten Sinne des Wortes handelt es sich bei der Entwicklerversion um eine Entwickler-Betaversion und bei der öffentlichen Version um eine öffentliche Betaversion. Die Entwicklerversion und die öffentliche Version richten sich an unterschiedliche Zielgruppen. Die Entwicklerversion wird von Apple zum Testen durch Entwickler verwendet. Sie benötigen ein Apple-Entwicklerkonto, um sie herunterzuladen und zu aktualisieren.

Ersetzen Sie den Klassennamen eines Elements mit jQuery Ersetzen Sie den Klassennamen eines Elements mit jQuery Feb 24, 2024 pm 11:03 PM

jQuery ist eine klassische JavaScript-Bibliothek, die in der Webentwicklung weit verbreitet ist. Sie vereinfacht Vorgänge wie die Verarbeitung von Ereignissen, die Bearbeitung von DOM-Elementen und die Durchführung von Animationen auf Webseiten. Bei der Verwendung von jQuery kommt es häufig vor, dass Sie den Klassennamen eines Elements ersetzen müssen. In diesem Artikel werden einige praktische Methoden und spezifische Codebeispiele vorgestellt. 1. Verwenden Sie die Methoden „removeClass()“ und „addClass()“. jQuery stellt die Methode „removeClass()“ zum Löschen bereit

Was bedeutet Klasse in Python? Was bedeutet Klasse in Python? May 21, 2019 pm 05:10 PM

Klasse ist ein Schlüsselwort in Python, das zum Definieren einer Klasse verwendet wird: Fügen Sie nach der Klasse ein Leerzeichen hinzu und fügen Sie dann den Klassennamen hinzu. Wenn es mehrere Wörter gibt, verwenden Sie die Groß-/Kleinschreibung Benennung, wie zum Beispiel [class Dog()].

Wie SpringBoot Klassendateien durch einen benutzerdefinierten Klassenlader verschlüsselt und schützt Wie SpringBoot Klassendateien durch einen benutzerdefinierten Klassenlader verschlüsselt und schützt May 11, 2023 pm 09:07 PM

Hintergrund In letzter Zeit wurden wichtige Geschäftscodes für das Unternehmens-Framework verschlüsselt, um zu verhindern, dass der technische Code durch Dekompilierungstools wie jd-gui einfach wiederhergestellt werden kann. Die Konfiguration und Verwendung des zugehörigen Verschleierungsschemas ist relativ komplex und es gibt viele Probleme für Springboot-Projekt, also werden die Klassendateien verschlüsselt und dann wird der benutzerdefinierte Klassencoder entschlüsselt und geladen. Dies erhöht nur die Schwierigkeit der Dekompilierung. Es wird das allgemeine Flussdiagramm zum Verschlüsselungsschutz angezeigt In der Abbildung unten verschlüsselt das Maven-Plugin die Kompilierung mit einem benutzerdefinierten Maven-Plugin. Nach der Verschlüsselung der angegebenen Klassendatei wird die verschlüsselte Klassendatei in den angegebenen Pfad kopiert und hier in „resource/corecla“ gespeichert

Detaillierte Erläuterung der Verwendung der PHP-Klasse: Machen Sie Ihren Code klarer und leichter lesbar Detaillierte Erläuterung der Verwendung der PHP-Klasse: Machen Sie Ihren Code klarer und leichter lesbar Mar 10, 2024 pm 12:03 PM

Beim Schreiben von PHP-Code ist die Verwendung von Klassen eine weit verbreitete Praxis. Durch die Verwendung von Klassen können wir verwandte Funktionen und Daten in einer einzigen Einheit kapseln, wodurch der Code klarer, leichter lesbar und einfacher zu warten ist. In diesem Artikel wird die Verwendung von PHPClass ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, besser zu verstehen, wie Klassen zur Optimierung von Code in tatsächlichen Projekten angewendet werden. 1. Klassen erstellen und verwenden In PHP können Sie das Schlüsselwort class verwenden, um eine Klasse zu definieren und Eigenschaften und Methoden in der Klasse zu definieren.

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

See all articles