感觉这个才是最简单的设计模式有木有!就是把之前的接口再封装一下而已==

当系统的数据和行为都正确,但是接口不符合时,我们应该考虑使用适配器模式,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要用于希望复用一些现有的类,但是接口和复用环境不一致的情况

    abstract class Student
    {
        public abstract void Study();
        public abstract void Play();
    }
    class Xueba:Student
    {
        public override void Study()
        {
            Console.WriteLine("学霸  学习");
        }
        public override void Play()
        {
            Console.WriteLine("学霸  玩");
        }
    }
    class Xuezha : Student
    {
        public override void Study()
        {
            Console.Write("学渣  学习  nono");
        }
        public override void Play()
        {
            Console.Write("学渣  玩 nonono");
        }

    }
    class Makeup:Student
    {
        private Xuezha xz = new Xuezha();
        public override void Study()
        {
            Console.WriteLine("-----补课----");
            xz.Study();
        }
        public override void Play()
        {
            xz.Play();
            Console.WriteLine("?----想都不要想");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Student xb = new Xueba();
            xb.Play();
            xb.Study();
            Student xz = new Makeup();
            xz.Play();
            xz.Study();
            Console.Read();
        }
    }

书上说起来.net中的 DataAdapter用作DataSet与数据源之间的适配器以便检索和保存数据,真的好奇去查了课件

它是DataSet对象和数据源之间的一个桥梁,用于从数据源中检索数据、填充 DataSet对象中的表及对DataSet对象做出的更改提交回数据源 
它使用Command对象从数据源中检索数据并将更改提交回数据源,Command对象体现在DataAdapter的SelectCommand、InsertCommand、UpdateCommand 和 DeleteCommand 属性上。 
Fill 方法用于在DataSet中添加或更新行以匹配数据库。 
Update方法用于利用DataSet中的更改更新数据库。

[例] 使用DataAdapter对象
使用Microsoft SQL Server 数据库的 student数据表来填充 DataSet。然后删除该表中的一条记录,并刷新DataSet和数据源:

            

            string Str = "Data Source=.\\SQLEXPRESS;
            Initial Catalog=master;User ID=lrg;pwd=1234";
            SqlConnection Con = new SqlConnection(Str);
            string comStr = "SELECT * FROM student ;";
            SqlCommand Com = new SqlCommand(comStr, Con);
            SqlDataAdapter myDA = new SqlDataAdapter();
            myDA.SelectCommand = Com;
             DataSet myDS = new DataSet();
            myDA.Fill(myDS, "student");
            Com.CommandText = "DELETE FROM student WHERE SID = '20020109'";
            myDA.DeleteCommand = Com;
            myDA.Fill(myDS, "student");