PHP面向接口编程 耦合设计模式 简单范例

代码如下:

<?php
interface js{
function ys($a,$b);
}
class Af implements js{
function ys($a,$b){
return "加法运算......结果为:".($a+$b);
}
}
class Jf implements js{
function ys($a,$b){
return "减法运算......结果为:".($a-$b);
}
}
class AAf implements js{
function ys($a,$b){
return "乘法运算......结果为:".($a*$b);
}
}
class JJf implements js{
function ys($a,$b){
return "除法运算......结果为:".($a/$b);
}
}
class Modf implements js{
function ys($a,$b){
return "取模运算......结果为:".($a % $b);
}
}
class China implements js{
public $varl=null;//这里直接:public $varl = new nothingx(); 会出错。
function __construct(){
$this->varl = new nothingx();
}
function ys($a,$b){
return $this->varl->say();
}
}
/*也可以用继承的方式实现哟:
class China extends nothingx implements js{
function ys($a,$b){
return parent::say();
}
}
*/
class nothingx{
function say(){
return "我什么运算都不做...只是为了实现<font color=#990000><b>‘耦合设计模式'</b></font>...我是出来打酱油的......";
}
}
class test{
private $one;
private $two;
public function __construct($x,$y){
$this->one=$x;
$this->two=$y;
echo "<font size=20px><strong>面向对象程序设计——接口</font></strong><hr>Class test初始化:<br>属性\$one=".$this->one."  属性\$two=".$this->two."<hr>";
}
function display(js $a){
return "<font color=#990000><b>用PHP接口技术实现的运算——开始运算啦:</b></font><hr>".$a->ys($this->one,$this->two)."<hr>";
}
}
$t=new test(103,2);
$t1=new jf;
$t2=new China;
echo $t->display($t1);
echo $t->display($t2);
?>

(0)

相关推荐

  • 深入分析php中接口与抽象类的区别

    接口和抽象类真的很难区分开,引文他们很相似,方法都没有定义逻辑,都是供子类是想或继承的.区分二者只要记住一句话:接口是规范,类是实现.接口的目的是定义一个规范,大家都遵守这个规范. 也就是说,从目的上可以很清楚地区分接口和抽象类.那么还是有疑问,既然有了借口,那么为什么还必须有抽象类呢? 加入我们要定义一个名为Animal的类,该类有两个子集Dog和Cattle,二者都有两个方法:run()方法和speak()方法. 假定Dog和Cattle的"跑(run)"是相同的,因此run()方

  • PHP面向对象的进阶学习(抽像类、接口、final、类常量)

    一.抽像类(abstract) 在我们实际开发过程中,有些类并不需要被实例化,如前面学习到的一些父类,主要是让子类来继承,这样可以提高代码复用性 语法结构: 复制代码 代码如下: abstract class 类名{ 属性 $name; 方法(){} //方法也可以为abstract 修饰符 function 方法名(){} } 例: 复制代码 代码如下: abstract class animal{ public $name; public $age; //抽象方法不能有方法体,主要是为了让子

  • php多重接口的实现方法

    本文实例讲述了php多重接口的实现方法.分享给大家供大家参考.具体如下: <?php interface staff_i1 //接口1 { function setID($id); function getID(); } interface staff_i2 //接口2 { function setName($name); function getName(); } class staff implements staff_i1, staff_i2 //接口的实现 { private $id;

  • php接口与接口引用的深入解析

    1.接口的介绍与创建 关键字 :interface 2.接口的引用与规范 关键字 :implements 接口:一种成员属性全部为抽象的特殊抽象类,在程序中同为规范的作用 1.类中全部为抽象方法 2.抽象方法前不用加abstract 3.接口抽象方法属性为public 4.成员属性必须为常量 抽象: 1.类中至少有一个抽象方法 2.抽象方法前需加abstract 共同点: 1.本身都不能被实例化,必须被继承或者引用 2.继承或者引用后,需要把所有抽象方法重载方可使用 接口有自己的创建关键字:in

  • PHP SPL标准库之接口(Interface)详解

    PHP SPL标准库总共有6个接口,如下: 1.Countable 2.OuterIterator 3.RecursiveIterator 4.SeekableIterator 5.SplObserver 6.SplSubject 其中OuterIterator.RecursiveIterator.SeekableIterator都是继承Iterator类的,下面会对每种接口作用和使用进行详细说明. Coutable接口: 实现Countable接口的对象可用于count()函数计数. 复制代码

  • php接口和抽象类使用示例详解

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 .抽象类不能被直接实例化.抽象类中只定义(或部分实现)子类需要的方法.子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化. 3 .如果子类需要实例化,前提是它实现了抽象类中的所有抽象方法.如果子类没有全部实现抽象类中的所有抽象方法,那么该子类也是一个抽象类,必须在 class

  • PHP OPP机制和模式简介(抽象类、接口和契约式编程)

    1.抽象类 抽象类机制中总是要定义一个公共的基类,而将特定的细节留给继承者来实现.通过抽象概念,可以在开发项目中创建扩展性很好的架构.任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的.被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现.在类的声明中使用 abstract 修饰符就可以将某个类声明为抽象的. 1.1方法原型(prototype) 是指方法的定义中剔除了方法体之后的签名.它包括存取级别.函数关键字.函数名称和参数.他不包含({

  • PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述

    复制代码 代码如下: <?php /* 边学边做的,为方便自己翻阅而发布,更为得到高人指点而发布,欢迎高手指点...... [提示]本例通过测试无误 [情景设计] 模拟计算机主板IDE接口,比如:主板可以存取的储存器常常有光驱.硬盘.闪存等等, 为了方便,有必要对这些不同的储存器设定同一的接口. 本例还假设一种前所未有的.存取方式与众不同的外星储存器也要加到主板上进行存取, 于是需要采用耦合的设计模式. [本例主要讲述] 1.通过接口.抽象类.一般类继承三种方式达到所谓的"接口"

  • PHP面向对象程序设计之接口用法

    接口是PHP面向对象程序设计中非常重要的一个概念.本文以实例形式较为详细的讲述了PHP接口的用法.具体如下: 接口:interface 在PHP中,我们可以规定,一个对象应该具有哪些公共的外部操作,即可使用interface来规定. 公共的方法就是接口.用于规定一个对象应该用于哪些公共的操作方法(接口),这个也叫接口(公共操作方法的集合) 即:接口(interface结构,公共方法集合) 公共方法(接口方法) 定义:用于限定某个对象所必须拥有的公共操作方法的一种结构,称之为接口(interfac

  • PHP中预定义的6种接口介绍

    PHP预定义了6个接口介绍如下: 1.Traversable遍历接口 呵呵!其实它不是一个在PHP中可以使用的接口,内部类才可使用,它有一个用途就是检测一个类是否可以遍历. if($class instanceof Traversable) { //foreach } 2.Iterator迭代器接口 接口摘要: Iterator extends Traversable { //返回当前索引游标指向的元素 abstract public mixed current(void) //返回当前索引游标

  • 浅析php中抽象类和接口的概念以及区别

    复制代码 代码如下: //抽象类的定义:abstract class ku{  //定义一个抽象类  abstract function kx();  ......}function aa extends ku{  //实现抽象类的方法  function kx(){    echo 'sdsf';  }}//使用方法$aa=new aa;$aa->kx();//1.定义一些方法,子类必须完全实现这个抽象中所有的方法//2.不能从抽象类创建对象,它的意义在于被扩展//3.抽象类通常具有抽象方法,

随机推荐