设计模式六大原则之依赖倒置原则讲解
小白浏览:4752022-09-06 21:59:03本文累计收益:0我也要赚钱

最近学习设计模式六大原则,简单记录一下学习内容,方便以后复习查阅,如有理解的不对请评论指正。设计模式可以简单理解为面向对象语言开发过程中,遇到各种场景和问题,解决方案和思路。设计模式六大原则为:单一职责原则、里氏替换原则、迪米特法则、依赖倒置原则、接口隔离原则、开闭原则。  

依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构中,高层模块不能依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象。通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,并能够降低修改程序所造成的风险。

实例代码

 新建一个抽象类,定义一个手机的通用功能。

    public abstract class AbstractPhone
    {
        public int Id { get; set; }
        public string Branch { get; set; }
        public abstract void Call();
        public abstract void Text();

    }

定义一个苹果手机类,并继承自抽象类:

    public class iPhone : AbstractPhone
    {
        public override void Call()
        {
            Console.WriteLine($"User {this.GetType().Name} Call");
        }

        public override void Text()
        {
            Console.WriteLine($"User {this.GetType().Name} Text");
        }
    }

定义一个华为手机类,并继承自抽象类:

    public class Huawei : AbstractPhone
    {
        public override void Call()
        {
            Console.WriteLine($"User {this.GetType().Name} Call");
        }

        public override void Text()
        {
            Console.WriteLine($"User {this.GetType().Name} Text");
        }
    }

在定义一个学生类,方法参数使用抽象类调用其方法。

    public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        /// <summary>
        /// 依赖抽象
        /// </summary>
        /// <param name="phone"></param>
        public void Play(AbstractPhone phone)
        {
            Console.WriteLine($"这里是{this.Name}");
            phone.Call();
            phone.Text();
        }
    }

通过上图代码可以看出学生类与手机类之间是通过抽象进行依赖的。

调用代码如下:
Student student = new Student()
{
      Id = 1,
      Name = "测试学生"
};
AbstractPhone iPhone = new iPhone();
student.Play(iPhone);

AbstractPhone huawei = new Huawei();
student.Play(huawei);

运行结果如下:

评论列表
发表评论
+ 关注