zoukankan      html  css  js  c++  java
  • 面向对象

    <?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'.'<br>';
    echo $_SERVER["DOCUMENT_ROOT"].'<br>';
    echo $_SERVER["REQUEST_URI"].'<br>';
    }
    }
    class cha extends Welcome{
    public function wel(){
    echo'killni';
    }
    }
    class ha extends Welcome{
    public function wel(){
    echo'hao';
    }
    }


    //3、前台实现,只用wel接口!
    $c='eng';//更改为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、如,再加一个的话,不需要后台插手,前台可自行操作(这样有利也弊:如增加一个人时要在后台加以控制,就显得无力了)

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

  • 相关阅读:
    SQL Server 2005 Beta 2 快照隔离 zt
    WP7基础学习第九讲
    WP7基础学习第七讲
    WP7基础学习第二讲
    如何对HttpWebRequest异步调用?
    WP7基础学习第五讲
    如何对HttpWebRequest和HttpWebRsponse异步调用?
    WP7基础学习第六讲
    WP7基础学习第一讲
    [收藏学习]gcc和g++
  • 原文地址:https://www.cnblogs.com/youxianyen/p/6027740.html
Copyright © 2011-2022 走看看