问题是这样的:
框架中有一个Common项目,这个可以供其他任何项目调用,
换句话说,它不能调用其它任何项目!
在这个项目里有一个NetHelper类,
这个类里有一个发送邮件和发送短信的方法.
现在有一个需求,邮件和短信发完后还要将发送的数据记录在数据库中.
但是Common项目自己又不能调用Database项目里的类...
这时候怎样设计最合理呢?
是要新建一个项目,引用Common和Database这两个项目,
添加一个类现发送邮件并记录的方法吗?我只想到这样的方法,可是觉得有点怪怪的,也不知道这个新建的项目怎么命名...
好了,我的问题陈述完了,路过的大侠,要是您,您会怎么处理???谢谢!
不知道事件可不可以,NetHelper加一个事件,然后在订阅这个事件。
是,发布消息是比较好的方法
太完美了!
@吴瑞祥: 太完美了!
依赖注入,简单的做法: Common.SetMailProvider(new MailProvider()),这样就ok了~
如果你觉得没有一个接口可用,那再来个更简单的: Common.SetMailFunction(Action action) //也就是传一个Action。
Facade模式,至于是项目,还只是cs文件,都无所谓