博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity C# 设计模式(七)适配器模式
阅读量:6302 次
发布时间:2019-06-22

本文共 1577 字,大约阅读时间需要 5 分钟。

定义:

将一个类的接口转换成客户希望的另一个接口。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 ();    }}

 

转载于:https://www.cnblogs.com/Jason-c/p/8872175.html

你可能感兴趣的文章
Android--UI之ListView
查看>>
〖Linux〗proc的一些文件读取操作
查看>>
不要在构造中做太多事情,不然有时候会出现有意思的代码~
查看>>
IIS 发布网站遇到的问题
查看>>
NuGet学习笔记(2)——使用图形化界面打包自己的类库
查看>>
xcode中没有autoSizing的设置
查看>>
两程序员不同境遇:少抱怨 多解决问题
查看>>
字符编码
查看>>
企业应用:应用层查询接口设计
查看>>
[转]最完美解决Nginx部署ThinkPHP项目的办法
查看>>
一个奇怪的无法上网问题及解决方案
查看>>
c#调用命令行遇到带空格的路径
查看>>
浅谈Excel开发:十 Excel 开发中与线程相关的若干问题
查看>>
Python正则表达式学习
查看>>
asp.net检查验证字符串是否为纯数字方法小结
查看>>
Javascript继承
查看>>
在Windows下配置Python+Django+Eclipse开发环境
查看>>
DKNY_百度百科
查看>>
Html5新特性之文档声明和头部信息
查看>>
error TRK0002: Microsoft Visual Studio 10.0\VC\bin\link.exe Access is denied.
查看>>