日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

观察者模式在个人网站邮件发布与订阅中的实践

發布時間:2023/12/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 观察者模式在个人网站邮件发布与订阅中的实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

觀察者模式在個人網站郵件發布與訂閱中的實踐

4/28/2017 10:02:59 AM

最近在使用SSM框架開發自己個人的學習網站過程中使用到了設計模式中非常常見同時非常使用的觀察者模式。所謂設計模式最重要的并非他的具體邏輯,而在于他的設計動機和實現原理。觀察者模式的設計動機就是使得作為觀察者在主動接收到來自被觀察者的動作或消息時發生聯動變化,從而實現消息的有效傳遞。下面是具體的核心代碼:

  • 郵件發布者(被觀察者)抽象,包含核心郵件訂閱者列表(EmailPublishObserver.java)

    public abstract class EmailPublishObserver {public List<EmailReceiverImp> emailReceiverImps=new ArrayList<EmailReceiverImp>();//訂閱者列表public void addEmailReceiver(EmailReceiverImp emailReceiverImp){this.emailReceiverImps.add(emailReceiverImp);}public void deleteEmailReceiver(EmailReceiverImp emailReceiverImp){this.emailReceiverImps.remove(emailReceiverImp);}//訂閱列表更新的抽象方法public abstract void update(List<EmailReceiverImp> emailReceiverImps);//郵件發布抽象方法/*** @param filePath 所需發送郵件的路徑地址*/public abstract void publishEmail(String[] filePath,String emailContent);

    }

  • 郵件發布實現(emailPublisher.java)

    /*** 郵件廣播發布*/@Service("emailPublisher")public class EmailPublisher extends EmailPublishObserver{private List<EmailReceiverImp> emailReceiverImps;//關聯觀察者列表@Overridepublic void update(List<EmailReceiverImp> emailReceiverImps) {this.emailReceiverImps=emailReceiverImps;}@Overridepublic void publishEmail(String[] filePath,String emailContent) {for (EmailReceiverImp emailReceiverImp:emailReceiverImps){emailReceiverImp.setFilePath(filePath);emailReceiverImp.setEmailContent(emailContent);emailReceiverImp.subscribe();}}}
  • 郵件訂閱者(觀察者)接口

    /***Created by Administrator on 2017/3/23.*郵件訂閱接口*/public interface IEmailReceiver {void subscribe();}
  • 郵件訂閱者實現

    public class EmailReceiverImp implements IEmailReceiver {

    private Email email;private String[] filePath;private String emailContent;public String[] getFilePath() {return filePath;}public void setFilePath(String[] filePath) {this.filePath = filePath;}public String getEmailContent() {return emailContent;}public void setEmailContent(String emailContent) {this.emailContent = emailContent;}public Email getEmail() {return email;}public void setEmail(Email email) {this.email = email;}public EmailReceiverImp(){}public EmailReceiverImp(Email email){this.email=email;}//此方法作為郵件發布后自動接收郵件(廣播到所有訂閱者)@Overridepublic void subscribe() {BlogEmailSender emailSender=new BlogEmailSender(email);emailSender.setSendFileName(filePath);emailSender.setContent(emailContent);Thread sendThread=new Thread(emailSender);//創建郵件發送線程sendThread.start();//啟動線程}}

網站界面

相關個人博客項目已經在GitHub開源,歡迎交流完善 -> https://github.com/kingxiusam/EasyBlog

轉載于:https://www.cnblogs.com/ZengHuangDong/p/6781081.html

總結

以上是生活随笔為你收集整理的观察者模式在个人网站邮件发布与订阅中的实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。