我有一个要求,用户需要配置他们希望在发生错误时收到警报的方式。他们拥有的选项如下:
1.) 在事件日志中创建一个事件
2.) 将电子邮件发送到从用户界面指定的电子邮件
我目前使用的类使用以下接口
interface INotificationSender
{
virtual void SendMessage(string message);
}
我的接口将由以下 2 个具体类实现
class EmailerNotificationSender: public INotificationSender
{
string m_EmailAddress;
public EmailerNotificationSender(string emailAddress)
{
m_EmailAddress = emailAddress;
}
public virtual void SendMessage(string Message)
{
// Send Message to email specified in member variable
}
}
class EventLogNotificationSender: public INotificationSender
{
public virtual void SendMessage(string Message)
{
// Log message in event log using
}
}
我当前的界面代码如下所示
public class MyUserinterfaceWindow
{
private INotificationSender m_NotificationSender; // concrete type depends on user interface selection!
public void Button_Click(...)
{
if (emailSelected)
{
m_NotificationSender = new EmailerNotificationSender(textbox.email)
return;
}
m_NotificationSender = new EventLogNotificationSender();
}
public void SendAlert()
{
m_NotificationSender.SendMessaged("SOMETHING BAD HAPPENED");
}
}
摘要/问题: 我如何删除正在实例化的具体类型的存在(例如 EventLogNotificationSender 和 EmailerNotificationSender )
注意: EventLogNotificationSender 的具体构造函数不需要参数,而 EmailNotificationSender 的具体构造函数需要一个字符串参数!