ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#入门详解 刘铁猛 接口、依赖反转、单元测试

2022-06-28 15:04:16  阅读:143  来源: 互联网

标签:刘铁猛 Console C# void 单元测试 phone WriteLine new public


参考笔记:C#学习笔记(二十三)接口、依赖反转、单元测试
补充:

引入接口降低耦合度。接口就是为了松耦合而生。松耦合最大的好处是:功能的提供方,变得可以被替换,从而降低紧耦合的中紧耦合功能方不能替换所带来的高风险和高成本。
` static void Main(string[] args)
{
var user = new PhoneUser(new RedMi());
user.UserPhone();

        var user2 = new PhoneUser(new VivoPhone());
        user2.UserPhone();
    }



class PhoneUser
{
    private IPhone _phone;
    public PhoneUser(IPhone phone)
    {
        _phone = phone;
    }

    public void UserPhone()
    {
        _phone.Dail();
        _phone.PickUp();
        _phone.Receive();
        _phone.Send();
    }
}




interface IPhone
{
    void Dail();
    void PickUp();
    void Send();
    void Receive();
}



class RedMi : IPhone
{
    public void Dail()
    {
        Console.WriteLine("RedMi calling..");
    }

    public void PickUp()
    {
        Console.WriteLine("Hello!This is Zhangzhang!");
    }

    public void Receive()
    {
        Console.WriteLine("RedMi message ring...");
    }

    public void Send()
    {
        Console.WriteLine("Hello!");
    }
}



class VivoPhone : IPhone
{
    public void Dail()
    {
        Console.WriteLine("Vivo calling..");
    }

    public void PickUp()
    {
        Console.WriteLine("Hello!This is Zhangzhang!");
    }

    public void Receive()
    {
        Console.WriteLine("Vivo message ring...");
    }

    public void Send()
    {
        Console.WriteLine("Hello!");
    }
}

}
`

用一个例子来观察一下 接口、解耦,依赖倒置原则,是怎么被单元测试应用的。

生产电扇的厂家,设计电扇,高电流转的快,低电流转的慢,一般电扇都有电流保护的功能,电流过大断开或者警告功能。

先紧耦合,再分开,单元测试。(此处没有写进行单元测试的代码,有时间再学习、补上)

`
static void Main(string[] args)
{
var fan = new DeskFan(new PowerSupply());
Console.WriteLine(fan.Work());
}

interface IPowerSupply
{
    int GetPower();

}


class PowerSupply : IPowerSupply
{
    public int GetPower()
    {
        return 110;   //测试的数值在这里!!!!!!

//return 220; //会给警告
}

}

class DeskFan //台式电扇
{
    private IPowerSupply _powerSupply;
    public DeskFan(IPowerSupply powerSupply)
    {
        _powerSupply = powerSupply;
    }

    public string Work()
    {
        int power = _powerSupply.GetPower();

        if (power <= 0)
        {
            return "won't worl";
        }
        else if (power < 100)
        {
            return "Slow";
        }
        else if (power < 200)
        {
            return "Work fine ";
        }
        else { return "Waring!"; }

    }


}

`

标签:刘铁猛,Console,C#,void,单元测试,phone,WriteLine,new,public
来源: https://www.cnblogs.com/MinervaZhang/p/16419434.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有