zoukankan      html  css  js  c++  java
  • Unity C# 设计模式(七)适配器模式

    定义:

    将一个类的接口转换成客户希望的另一个接口。adapter模式使得原本由于接口不兼容而不能在一起的那些类可以一起工作。

    示例代码:

    1、类适配器

    /*
    Class Adapter:类适配器,这里简写为CA
    
    通过适配器PowerAdapter_CA类,将两孔插头TwoHole_CA类进行封装,
    从而得到我们想要的三孔插头ITargetThreeHole_CA类,
    
    */
    
    public interface ITargetThreeHole_CA  {
    
        void Request();
    }
    using UnityEngine;
    
    public class TwoHole_CA {
    
        public void SpecificRequest()
        {
            Debug.Log ("我是两孔的插头");
        }
    }
    using UnityEngine;
    
    public class PowerAdapter_CA : TwoHole_CA,ITargetThreeHole_CA {
        
        public void Request ()
        {
            Debug.Log ("");
            SpecificRequest ();
            Debug.Log ("转换为三孔插头了");
        }
    }
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Client_CA : MonoBehaviour {
    
        void Start () {
            ITargetThreeHole_CA threeHole = new PowerAdapter_CA ();
            threeHole.Request ();
        }
    }

    2、对象适配器

    /*
    Object Adapter:对象适配器,这里简写为OA
    
    通过适配器ITargetThreeHole_OA类,将两孔插头TwoHole_OA类进行封装,
    从而得到我们想要的三孔插头PowerAdapter_OA类,
    
    */
    public interface ITargetThreeHole_OA  {
    
        void Request();
    }
    using UnityEngine;
    
    public class TwoHole_OA {
    
        public void SpecificRequest()
        {
            Debug.Log ("我是两孔的插头");
        }
    }
    using UnityEngine;
    
    public class PowerAdapter_OA : ITargetThreeHole_OA {
        
        TwoHole_OA twoHoleAdaptee=new TwoHole_OA();
    
        public void Request ()
        {
            Debug.Log ("");
            twoHoleAdaptee.SpecificRequest ();
            Debug.Log ("转换为三孔插头了");
        }
    }
    using UnityEngine;
    
    public class Client_OA : MonoBehaviour {
    
        void Start () {
            ITargetThreeHole_OA threeHole = new PowerAdapter_OA ();
            threeHole.Request ();
        }
    }
  • 相关阅读:
    hive_case
    hive_group
    linux-搭建ngnix
    Nfs服务器搭建
    几种常见的启动脚本
    linux 修改本机的端口映射
    oracle-sql计算
    linux 磁盘大小查看
    postMan测试接口的几种方式
    oracle迁移到12c的时列转行 wm_concat 报错解决
  • 原文地址:https://www.cnblogs.com/Jason-c/p/8872175.html
Copyright © 2011-2022 走看看