加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 静态物质的松散耦合

发布时间:2020-12-15 19:36:40 所属栏目:百科 来源:网络整理
导读:我有一个类,ClassA使用我编写的客户端发送短信,TextClient,通过调用静态方法发送一些短信 TextClient.Send(string text,string destination)// where destination is a phone number 但是,我还有一个邮件客户端类MailClient,它发送具有相同签名的电子邮件:
我有一个类,ClassA使用我编写的客户端发送短信,TextClient,通过调用静态方法发送一些短信

TextClient.Send(string text,string destination)
// where destination is a phone number

但是,我还有一个邮件客户端类MailClient,它发送具有相同签名的电子邮件:

MailClient.Send(string text,string destination)
// where destination is an email address

我想“注入”应该使用哪些客户端 – 这可能吗?

(注意:我知道当目标可以容纳哪些值并且被认为有效时,可能会出现问题,但是这些值是从其他地方获取的,所以这个类不需要打扰.这就是为什么我想首先把它抽象出来.)

解决方法

基本上,摆脱静态方法.创建一个接口(IMessageClient),然后使用实现该接口的实例方法实现两个实现(TextClient和MailClient).然后,您可以轻松地将适当的IMessageClient注入到应用程序的其余部分.

您当然可以使用委托来避免在这里创建接口 – 但我肯定会改为使用接口:

>所涉及的名称(接口名称,方法名称和参数名称)在您使用时传达信息>它允许在同一界面中使用多种方法>它可以防止恰好使用相同参数类型但完全不相关的方法的方法

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读