简言:
好久没写博客了,今天手痒想写一写。废话少说,我们直入主题,相信大家对接口interface,这个单词一定不陌生。但是要说到它的作用,除了解耦之外,还有什么作用呢?可能大多数人都不是很清楚(大牛除外),下面请看:
demo环境:.net core 2.2
为什么要使用Interface?
在正常的开发中,假如现在要一个添加用户的功能,一般我们的步奏是,先定义一个IUserService接口,然后在定义一个UserService类,然后继承接口,实现接口的方法,例:
接下来在mvc或者api中通过ioc依赖注入下(注入的代码我就不贴了),然后就可以使用了:
但是现在问题来了,技术老大需要你在添加用户时(在正常开发中有可能是其他功能),判断下登录用户的用户类型,比如:只有用户类型为1的才能让他添加,其他的不能添加,并且,添加完还要记录日志。并且,你是刚接手这个项目,这个addnew方法是上一个人写的,里面又不止单纯的添加用户,还有其它复杂逻辑,在这时,一般人的做法是修改这个UserService类中的addnewasync方法,但是这样会有很多问题,比如:你一不小心删了或者多加了个什么东西,然后影响到后面的逻辑执行,还有如果下一个接手这个项目的人,随着修改的人越来越多,这个方法将变得异常复杂,让接收的无从下手。
使用Interface的好处:
第一步:修改UserAddDTO类:
第二步:新增一个UserServiceExtensions类,并继承自IUserService接口,通过构造函数传入一个IUserService对象:
第三步:修改下Ioc注入代码,关于该段注入代码,我参考了一篇文章:https://www.cnblogs.com/yilezhu/p/10236163.html:
最后一步:使用
结果:
既实现了我们要的功能,也不需要修改原有的类,这是接口的好处之一,关于接口还有许多的好处以及作用,在这里我就不一一介绍了。谢谢观看~!
————————————————————————————————结束线————————————————
---恢复内容结束---