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注入到应用程序的其余部分.您当然可以使用委托来避免在这里创建接口 – 但我肯定会改为使用接口:
>所涉及的名称(接口名称,方法名称和参数名称)在您使用时传达信息>它允许在同一界面中使用多种方法>它可以防止恰好使用相同参数类型但完全不相关的方法的方法
总结以上是内存溢出为你收集整理的c# – 静态物质的松散耦合全部内容,希望文章能够帮你解决c# – 静态物质的松散耦合所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)