面向过程与面向对象的一些区别,基于抽象类的一些思考

<?php
/*抽象类的应用

//场景:判断不同来源,显示不同提示文字

面向过程如下处理
$a='eng';
if ($a=='eng'){
    echo'nihao';
}else if($a=='cha'){
    echo'killni';
}else if($a=='ha'){
    echo'hao';
}
//以上不好扩展,以后再来一个的话,还需要增加else if,原程序必须改动!

*/

//用面向对象来处理!

//1、后台定义抽象类,规范方法
abstract class Welcome{
    abstract function wel();
}

//2、继承后,再用自己的方法处理
class eng extends Welcome{
    public function wel(){
        echo'nihao';
    }
}
class cha extends Welcome{
    public function wel(){
        echo'killni';
    }
}
class ha extends Welcome{
    public function wel(){
        echo'hao';
    }
}


//3、前台实现,只用wel接口!
$c='cha';//更改为cha,ha就显示不同效果!
$my=new $c();
$my->wel();

//总结:以抽象来处理后,以后,再增加一个对象就好!无须改动原来已经写好的代码!
//与上面面向过程的例子最大的区别,前后分离更好了!


/*
思考:如果在wel方法里,加一个参数(参数就是显示的文字)
那么后台的wel方法是否可以优化了?也不需要再声明那么多的类了?
如此前台必须按不同的变量要来控制显示!那么与上例相比,有什么不同?
//如下:
class Wel{
     function wel($zi){
         echo $zi;
     }

$c='cha';//更改为cha,ha就可以!
$my=new $c();
$my->wel();
思考结果:
1、这样的话,前台也需要再做$c的判断(这样转给前台,意义不大了)!
2、如,再加一个的话,不需要后台插手,前台可自行操作(这样有利也弊:如增加一个人时要在后台加以控制,就显得无力了)

补:希望看到此信息的朋友能不吝赐教,给我说说我这想法之间存在的问题,谢谢!
*/

?>

转载于:https://www.cnblogs.com/k5054/archive/2012/11/14/2770808.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值