MVC模式(简单模拟QQ登录界面)

来源:互联网 发布:计算机算法的特征 编辑:程序博客网 时间:2024/04/29 12:47

      QQ登录界面有这样一个选项:记住账号. 这个账号保存在本地的配置文件中,下次登录的时候,用户就不需要重新输入密码, 那么这个功能是如何实现的呢?下面用C#给出模拟功能的实现,旨在阐述一个重要的设计模式: MVC模式.  MVC模式好处多多,详见如下代码:

     (需要特别说明的是,用户的QQ号码实际上是保存在硬盘文件中的,即使断电,用户在第二次登录时也可以获得QQ号码。为了简便起见,下面的模拟实现没有考虑从硬盘文件中读写数据,而是直接把用户的QQ号码保存在一个单例中,断电后,单例中的数据当然就不存在了.)


using System;class Model       //模型(负责管理QQNumber){    private string QQNumber;    private static Model instance;    private Model()    {             }       public static Model getInstance()      {        if (null == instance)         //生成单例            instance = new Model();        return instance;    }    public void setQQNumber(string QQNumber)   // setter    {        this.QQNumber = QQNumber;    }    public string getQQNumber()               // getter    {        return QQNumber;    }}class View     //负责与用户交互{    public void showIntoToUser(string s)    {        Console.WriteLine("QQ number shown in the View is " + s);    }    public string getInfoFromUser()    {        Console.Write("Please input your QQ number:");        return Console.ReadLine();    }}class Controller   // 负责与Model和View打交道,建立一个桥梁{    public void setInfoToModel(string s)    {         Model.getInstance().setQQNumber(s);    }    public string getInfoFromModel()    {        return Model.getInstance().getQQNumber();    }    public void giveInfoToView(string s)    {        View v = new View();        v.showIntoToUser(s);    }    public string getInfoFromView()    {        View v = new View();        return v.getInfoFromUser();    }}class Example{    static void Main()    {        Controller c = new Controller();        string s1 = c.getInfoFromView();  //用户第一次输入QQ号码        c.setInfoToModel(s1);             //用户点击“记住账号”后        string s2 = c.getInfoFromModel(); //从Model中取出数据QQ号码        c.giveInfoToView(s2);             //把QQ号码显示在View上        Console.WriteLine( "QQ number stored in the Model is " + Model.getInstance().getQQNumber() );    }}


程序结果如下:

Please input your QQ number:123456789
QQ number shown in the View is 123456789
QQ number stored in the Model is 123456789


原创粉丝点击