1.php多态

    设计模式是由建筑学中间抽象出来的思想形成的,基于面向对象的设计思想和大量工程实践而成型。设计模式在众多语言中都是相通的,但是有些语言因为本身实际思想的缺陷会有很多的设计模式,但在弱类型语言比如php和python我们经常使用的设计模式屈指可数。多态在设计模式中占有重要地位,今天来说一说。

    首先我们创建一个父类接口,我们总是面向接口编程,我们只需要看接口就知道有哪些方法可用,而不需要去阅读分析每一个对象(类)。我们定义关于猫科动物能不能爬树的抽象方法。

<?php
interface Felidae{
    public function Climbing();
}
    各种有趣的动物。

/* 东北虎体型很大,并不会爬树 */
class Xtriger implements Felidae{
    public function Climbing(){
        echo "能爬到一米,就掉下来了。";
    }
}

/* 孟加拉虎身材娇小,所以能到树顶端 */
class Mtriger implements  Felidae{
    public  function Climbing(){
        echo "孟加拉虎爬到了树的顶端,然后下来了。";
    }
}

/* 猫上窜下跳,直接飞起来了 */
class Cat implements Felidae{
    public function Climbing(){
        echo "直接飞起来了。";
    }
}
    在面向对象编程是有类似于客户端这样的概念的。所以我们创建一个客户端。要注意的是在方法括号里用了一个前面定义的Felidae类名。可能有些人没有见过,他的作用就是确定只有Felidae和他的子类能被当作参数被传递,相当于强类型中的类型控制。

class Client{
    public static function show(Felidae $obj){
        $obj->Climbing();
    }
}
    我们最后调用一下这些对象。

Client::show(new Cat());
echo "<br/>";
Client::show(new Xtriger());
echo "<br/>";
Client::show(new Mtriger());
    最后显示的结果

        直接飞起来了。
        能爬到一米,就掉下来了。
        孟加拉虎爬到了树的顶端,然后下来了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值