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

      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
 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值