C# 适配器模式(Adapter)

理解:旧的接口不能被客户直接调用,需要第三方类进行转换。就好像USB转换器一样

代码:

using System.Windows.Forms;

namespace DesignMode.Adatper
{
    //原版英文电影
    public class Movie_English
    {
        public void PlayEnglish()
        {
            MessageBox.Show("英文电影");
        }
    }

    //观众要看的中文电影
    public class Movie_Chinese
    {
        public virtual void PlayChinese()
        {
            MessageBox.Show("中文电影");
        }
    }

    //继承放中文电影的接口
    public class Translate : Movie_Chinese
    {
        private Movie_English _english = new Movie_English();

        //虽然放的是英文电影,但观众调用的是播放中文的方法
        public override void PlayChinese()
        {
            _english.PlayEnglish();
        }
    }

客户端代码:

        private void btn_Adapter_Click(object sender, EventArgs e)
        {
            //观众只需要告诉翻译者要看中文电影
            Translate translate = new Translate();
            translate.PlayChinese();} 

 

 

 

 

posted @ 2012-03-01 00:38  无主之城  阅读(794)  评论(0编辑  收藏  举报