栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

29 接口、依赖反转、单元测试

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

29 接口、依赖反转、单元测试


abstract 中的抽象方法只规定了不能是 private 的,而接口中的“抽象方法”只能是 public 的。

这样的成员访问级别就决定了接口的本质:接口是服务消费者和服务提供者之间的契约。

既然是契约,那就必须是透明的,对双方都是可见的。

接口是纯虚方法,抽象方法稍微具体一些(根据上图轮廓虚线的程度)


谁依赖谁,便用箭头指向谁,使用接口时,依赖者画在了下方,箭头方向反转,称为依赖反转
(虚函数也有类似效果)

单位测试
创建用于测试的命名空间

namespace watch_learn_CSharp.Tests
{
    public class Demo_InterfaceTest
    {
        [Fact]
        public void PowerLowerThanZero_OK()
        {
            
            PowerSupplyLowerThanZero powerSupplyLowerZero = new PowerSupplyLowerThanZero();
            var fan = new DeskFan(powerSupplyLowerZero);
            var actual = fan.Work();
            var expected = "Won't work";
            Assert.Equal(actual, expected);
        }

        [Fact]
        public void PowerHigherThan200_Warning()
        {
            PowerSupplyHignerThan200 powerSupplyHignerThan200 = new PowerSupplyHignerThan200();
            var fan = new DeskFan(powerSupplyHignerThan200);
            var actual = fan.Work();
            var expected = "Warning";
            Assert.Equal(actual, expected);
        } 
    }

    class PowerSupplyLowerThanZero : IPowerSupply
    {
        private int _power = 0;
         
        public int Power
        {
            get { return _power; }
            set { _power = value; }
        }
         
        public int GetPower()
        {
            return Power;
        }
    }

    class PowerSupplyHignerThan200 : IPowerSupply
    {
        private int _power = 300;

        public int Power
        {
            get { return _power; }
            set { _power = value; }
        }

        public int GetPower()
        {
            return Power;
        }
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827252.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号