<?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、如,再加一个的话,不需要后台插手,前台可自行操作(这样有利也弊:如增加一个人时要在后台加以控制,就显得无力了)
补:希望看到此信息的朋友能不吝赐教,给我说说我这想法之间存在的问题,谢谢!
*/
?>