zoukankan      html  css  js  c++  java
  • PHP设计模式之适配器模式

    将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本的由于接口不兼容而不能一起工作的那些类可以一起工作。
    应用场景:老代码接口不适应新的接口需求,或者代码很多很乱不便于继续修改,或者使用第三方类库。

    //老的代码     
    class User {    
        private $name;    
        function __construct($name) {    
            $this->name = $name;    
        }    
        public function getName() {    
            return $this->name;    
        }    
    }   

    //新代码,开放平台标准接口    
    interface UserInterface {    
        function getUserName();    
    }    
    class UserInfo implements UserInterface {    
        protected $user;    
        function __construct($user) {    
            $this->user = $user;    
        }    
        public function getUserName() {    
            return $this->user->getName();    
        }    
    }   

    $olduser = new User('张三');    
    echo $olduser->getName()."n";    
    $newuser = new UserInfo($olduser);    
    echo $newuser->getUserName()."n";   

    注意点:这里的新接口使用了组合方式,UserInfo内部有一个成员变量保存老接口User对象,模块之间是松耦合的,这种结构其实就是组合模式。不要使用继承,虽然UserInfo继承User也能达到同样的目的,但是耦合度高,相互产生影响。

  • 相关阅读:
    04.openssl-创建 Root CA证书
    03.openssl-获得支持加密算法
    02.openssl-密钥的格式转换
    01.openssl-创建证书签名请求
    00.openssl key generation
    03.openssl中设计中小提示
    会员手机运营商统计
    将属性和方法添加到Date原型中
    AngularJS 指令(意义)
    统计字符串中数字,字母,空格的个数
  • 原文地址:https://www.cnblogs.com/-simon/p/5875745.html
Copyright © 2011-2022 走看看