zoukankan      html  css  js  c++  java
  • PHP设计模式

    这种模式允许使用不同的接口重构某个类,可以允许使用不同的调用方式进行调用:

    <?php
    /**
     * 第一种方式:对象适配器
     */
    interface Target {
        public function sampleMethod1();
        public function sampleMethod2();
    }
    
    class Adaptee {
        public function sampleMethod1() {
            echo '++++++++';
        }
    }
    
    class Adapter implements Target {
        private $_adaptee;
    
        public function __construct(Adaptee $adaptee) {
            $this->_adaptee = $adaptee;
        }
    
        public function sampleMethod1() {
            $this->_adaptee->sampleMethod1(); 
        }
    
        public function sampleMethod2() {
            echo '————————'; 
        }
    }
    $adapter = new Adapter(new Adaptee());
    $adapter->sampleMethod1();//输出:++++++++
    $adapter->sampleMethod2();//输出:————————
    
    
    
    /**
     * 第二种方式:类适配器
     */
    interface Target2 {
        public function sampleMethod1();
        public function sampleMethod2();
    }
    
    class Adaptee2 { // 源角色
        public function sampleMethod1() {echo '++++++++';}
    }
    
    class Adapter2 extends Adaptee2 implements Target2 { // 适配后角色
        public function sampleMethod2() {echo '————————';} 
    }
    
    $adapter = new Adapter2();
    $adapter->sampleMethod1();//输出:++++++++
    $adapter->sampleMethod2();//输出:————————
    ?>
    
  • 相关阅读:
    在阿里云服务器上安装MySQL
    mui中调用ajax时报abort错误
    IDEA根据数据库表生成pojo对象
    java.io.IOException: All specified directories have failed to load.
    mysql隔离级别
    java8新特性
    数据库语言分类
    Spring AOP 代码示例
    java NIO学习(二)
    java NIO学习(一)
  • 原文地址:https://www.cnblogs.com/taozi32/p/9226510.html
Copyright © 2011-2022 走看看