• PHP设计模式---适配器模式


    目的:将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作。

    主要角色:
    目标(Target)角色:定义客户端使用的与特定领域相关的接口,这也就是我们所期待得到的
    源(Adaptee)角色:需要进行适配的接口
    适配器(Adapter)角色:对Adaptee的接口与Target接口进行适配;适配器是本模式的核心,适配器把源接口转换成目标接口,此角色为具体类
    适用性:
    1、你想使用一个已经存在的类,而它的接口不符合你的需求
    2、你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作
    3、你想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口(仅限于对象适配器)

    <?php
    /**
     * 目标角色
     */
    interface Target
    {
        public function simplemethod1();
        public function simplemethod2();
    }
    /**
     * 源角色
     */
    class Adaptee
    {
        public function simplemethod1()
        {
            echo 'Adapter simplemethod1'."<br/>";
        }
    }
    /**
     * 类适配器角色
     */
    class Adapter implements Target
    {
        private $adaptee;
    
        function __construct(Adaptee $adaptee)
        {
            $this->adaptee=$adaptee;
        }
        /**
         * 委派调用Adapter的simplemethod1方法
         */
        public function simplemethod1()
        {
            echo $this->adaptee->simplemethod1();
        }
        public function simplemethod2()
        {
            echo 'Adapter simplemethod2'."<br/>";
        }
    }
    /**
     * 客户端
     */
    class Client
    {
        public static function main()
        {
            $adaptee = new Adaptee();
            $adapter = new Adapter($adaptee);
            $adapter->simplemethod1();
            $adapter->simplemethod2();
        }
    }
    Client::main();
    

    运行结果:

    cr:https://www.cnblogs.com/moxiaoan/p/6230018.html

  • 相关阅读:
    深入学习Spring框架(四)- 事务管理
    深入学习Spring框架(三)- AOP面向切面
    深入学习Spring框架(二)- 注解配置
    深入学习Spring框架(一)- 入门
    深入学习Mybatis框架(二)- 进阶
    深入学习Mybatis框架(一)- 入门
    短uuid生成
    from __future__ import division
    django-orm 快速清理migrations缓存
    Ajax请求设置csrf_token
  • 原文地址:https://www.cnblogs.com/nycj/p/14518603.html
Copyright © 2020-2023  润新知