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); ?>
------解决方案--------------------
稍微简化了你的例子,看注释应该清晰多了吧
- 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>

类和方法的概念和实例类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类的构造方法__init__():类有一个名为init()的特殊方法(构造方法),该方法在类实例化时会自动调用。实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用self修饰的变量。实例化:创建一个类的实例,类的具体对象。继承:即一个派生类(derivedclass)继承基类(baseclass)的

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果,其目的是封装一段可重复使用的代码,提高代码的可重用性和可维护性。

每年Apple发布新的iOS和macOS大版本之前,用户都可以提前几个月下载测试版抢先体验一番。由于公众和开发人员都使用该软件,所以苹果公司为两者推出了developer和public版即开发者测试版的公共测试版。iOS的developer版和public版有什么区别呢?从字面上的意思来说,developer版是开发者测试版,public版是公共测试版。developer版和public版面向的对象不同。developer版是苹果公司给开发者测试使用的,需要苹果开发者帐号才可以收到下载并升级,是

class是python中的一个关键字,用来定义一个类,定义类的方法:class后面加一个空格然后加类名;类名规则:首字母大写,如果多个单词用驼峰命名法,如【class Dog()】。

背景最近针对公司框架进行关键业务代码进行加密处理,防止通过jd-gui等反编译工具能够轻松还原工程代码,相关混淆方案配置使用比较复杂且针对springboot项目问题较多,所以针对class文件加密再通过自定义的classloder进行解密加载,此方案并不是绝对安全,只是加大反编译的困难程度,防君子不防小人,整体加密保护流程图如下图所示maven插件加密使用自定义maven插件对编译后指定的class文件进行加密,加密后的class文件拷贝到指定路径,这里是保存到resource/corecla

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

基本的Java类型(boolean、byte、char、short、int、long、float和double)和关键字void通过class属性也表示为Class对象;Class类中booleanisPrimitive():判定指定的Class对象是否表示一个基本类型。包装类和Void类的静态TYPE字段;Integer.TYPE==int.class;Integer.class==int.class;数组类型的Class实例对象:Classclz=String[].class;数组的Clas

在本文中,我们将了解enumerate()函数以及Python中“enumerate()”函数的用途。什么是enumerate()函数?Python的enumerate()函数接受数据集合作为参数并返回一个枚举对象。枚举对象以键值对的形式返回。key是每个item对应的索引,value是items。语法enumerate(iterable,start)参数iterable-传入的数据集合可以作为枚举对象返回,称为iterablestart-顾名思义,枚举对象的起始索引由start定义。如果我们忽


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能