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

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

适配器模式

问题场景

学生需要一名英语老师,但英语老师暂时还没有就职,只能暂时由校长代替这个职位。可是学生明确要求要一名教授英语的老师(必须是实现了ITeacher接口的老师),此时为了哄骗学生,我们只能将校长伪造成一名英语教师代替执行教学任务。伪造的工作交给适配器来完成,适配器实现了ITeacher接口,所以学生能看见的就是适配器而非校长,而适配器内部就是调用校长来执行任务的,只不过学生根本不知道而已。

总结模式

客户期望的一个接口类型的实例来完成任务,但该接口类型暂时没有一个具体的实现,所以使用适配器去调用另一种类型的方法来解决问题。

示例代码

public interface ITeacher
{
    void Teaching( );
}
public interface IPrincipal
{
    void Education( );
}
public class Principal : IPrincipal
{
    public void Education( )
    {
        Console.WriteLine( "上课" );
    }
}
public class TeachAdapter : ITeacher
{
    private IPrincipal principal;
    public TeachAdapter( IPrincipal principal ) {
 this.principal = principal; }
    public void Teaching( )
    {
        principal.Education( );
    }
}
public class Programe
{
    static void Main( string[] args )
    {
        ITeacher teacher = new TeachAdapter( new Principal( ) ); //客户要求ITeacher去执行任务,我就去找另一个类型来执行任务,反正客户是不会知道的
        teacher.Teaching( );
    }
}

 

转载于:https://www.cnblogs.com/myrocknroll/p/8596901.html

你可能感兴趣的文章
JAVA算法1——连通性问题之快速查找算法
查看>>
Writing
查看>>
? VMware?添加共享磁盘?
查看>>
JAVA中int、String的类型转换
查看>>
hadoop一步步入门
查看>>
Cypher语言学习笔记
查看>>
路由协议概述(1) --- 总览
查看>>
阿里巴巴七大事业群替代子公司制
查看>>
S5PV210-uboot-fastboot原理
查看>>
Curl-Loader性能测试详解
查看>>
用bs4和urllib 爬取视频
查看>>
Visual Studio 2012 怪异的自动重启
查看>>
AspNetPager多参数传值
查看>>
MongoDB的真正性能:实战百万手游用户
查看>>
取消windows其他用户登录是否继续关机 确认
查看>>
移动时代做社区的一丝希望
查看>>
logstash日志分析的配置和使用
查看>>
Centos7.1(1151)使用Yum搭建LAMP+phpMyAdmin
查看>>
mysql 共享表空间的扩展
查看>>
SVN服务器搭建和使用(三)
查看>>