uml中的观察者模式实现
observer pattern implementation in uml
我想为我们的订阅者添加通知服务。订户将能够选择
你最喜欢的部分。当他们中的任何一个发表新文章时,它将被发送给他们
一封带有标题的电子邮件。我们想提供一个避免对接的解决方案
订阅者和文章之间。
我们有一个 EMailServer 邮件服务器。你不需要知道你的细节
配置,或 sendEMail 方法。这些细节封装在这个 class 中,它的
通过单例模式应用程序访问服务:
责任模式我很清楚,我会用观察者,但我不知道我是否实施得好。
我也想过实现controller design pattern,但是这样就产生了更多的疑惑,如何把它转化成uml,目前我实现的observer是这样的,不知道对不对:
我所做的是,观察者将是邮件服务器,通知订阅者他最喜欢的部分有一篇新文章,而可观察者将与文章的特定主题相关。
不知道对不对,就是这么想的
关于设计模式,由于是单例,我的疑惑比较多
我想用户(订阅者)执行的 'mark this as my favourite' 操作应该会导致创建一个观察者 object,它会记住创建它的用户并获得链接('attach' ) 到观察到的部分 ('subject').
然后每个部分都应该在添加新文章时向其所有观察者发送通知 ('update')。
观察者应该记住其最近更新的一些时间戳或其他标识符,因此它可以检查 'subject' 自上次更新以来添加了哪些文章。然后它通过电子邮件服务器向其订阅者发送一条 e-mail 消息,其中包含有关新文章的信息(并更新其最近更新的内部 timestamp/id)。
或者,'update' 通知可能包含新文章的标题或其他 ID (URL...?)。
收到通知后,每个观察者都会向订阅者(它记住它的 ID)发送一条关于一篇文章(它在 'update' 调用中收到它的 ID)的消息。
当然也应该有一个'unfavourite'用户的功能,它找到一个相应的观察者object,将它从一个主题中分离出来,最后销毁它。
从几个问题开始,Suscriptor
和 InterfaceObservator
命名
然后我们有模式设计问题,我认为你的 subscriber
应该实现 Implement Observer
,而不是服务器的子类,然后你可以在服务器内部使用它作为组合,但类型为 InterfaceObservator
class Suscriptor implements InterfaceObsevator{
//implement here
}
class Server implements OtherInterface{
//uses Observer
private InterfaceObsevator suscriptor
}
我想为我们的订阅者添加通知服务。订户将能够选择 你最喜欢的部分。当他们中的任何一个发表新文章时,它将被发送给他们 一封带有标题的电子邮件。我们想提供一个避免对接的解决方案 订阅者和文章之间。 我们有一个 EMailServer 邮件服务器。你不需要知道你的细节 配置,或 sendEMail 方法。这些细节封装在这个 class 中,它的 通过单例模式应用程序访问服务:
责任模式我很清楚,我会用观察者,但我不知道我是否实施得好。
我也想过实现controller design pattern,但是这样就产生了更多的疑惑,如何把它转化成uml,目前我实现的observer是这样的,不知道对不对:
我所做的是,观察者将是邮件服务器,通知订阅者他最喜欢的部分有一篇新文章,而可观察者将与文章的特定主题相关。
不知道对不对,就是这么想的
关于设计模式,由于是单例,我的疑惑比较多
我想用户(订阅者)执行的 'mark this as my favourite' 操作应该会导致创建一个观察者 object,它会记住创建它的用户并获得链接('attach' ) 到观察到的部分 ('subject').
然后每个部分都应该在添加新文章时向其所有观察者发送通知 ('update')。
观察者应该记住其最近更新的一些时间戳或其他标识符,因此它可以检查 'subject' 自上次更新以来添加了哪些文章。然后它通过电子邮件服务器向其订阅者发送一条 e-mail 消息,其中包含有关新文章的信息(并更新其最近更新的内部 timestamp/id)。
或者,'update' 通知可能包含新文章的标题或其他 ID (URL...?)。
收到通知后,每个观察者都会向订阅者(它记住它的 ID)发送一条关于一篇文章(它在 'update' 调用中收到它的 ID)的消息。
当然也应该有一个'unfavourite'用户的功能,它找到一个相应的观察者object,将它从一个主题中分离出来,最后销毁它。
从几个问题开始,Suscriptor
和 InterfaceObservator
命名
然后我们有模式设计问题,我认为你的 subscriber
应该实现 Implement Observer
,而不是服务器的子类,然后你可以在服务器内部使用它作为组合,但类型为 InterfaceObservator
class Suscriptor implements InterfaceObsevator{
//implement here
}
class Server implements OtherInterface{
//uses Observer
private InterfaceObsevator suscriptor
}