国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java監聽模式

Taste / 2041人閱讀

摘要:說明生活中,監聽無處不在。比如說,手機播放音樂功能,也是一種監聽你不點擊播放按鈕,手機就不放歌,當你點擊時,手機就播放音樂。即觸發某種行為,便執行相應的動作。

說明

  生活中,監聽無處不在。比如說,手機播放音樂功能,也是一種監聽:你不點擊播放按鈕,手機就不放歌,當你點擊時,手機就播放音樂。即觸發某種行為,便執行相應的動作。

組成

Java監聽模式右三個部分組成:事件源、事件對象、事件監聽器

當事件源觸發某種行為,會自動執行事件監聽器里面相應的方法

事件監聽器方法參數是事件對象,事件對象包含事件源的引用,在方法中可以獲取事件源的引用

PS:好吧,說的有點暈,因為我也是剛學的啦,看的暈的同學直接看代碼就好了。

實現

事件源:Student擁有read()方法,

package com.petro.listener;
/**
 * @ClassName: Student
 * @description: 監聽模式的事件源
 * @author Petro Chen
 * @date: 2017年9月12日下午11:32:03
 */
public class Student {
    
    // read方法事件監聽器引用
    private Listener listener;
    
    /**
     * @description: 注冊read方法的事件監聽器
     * @param listener 事件監聽器引用
     * @return void
     * @throws
     */
    public void setReadListener(Listener listener) {
        this.listener = listener;
    }
    
    /**
     * @description: 學生的read方法
     * @return void
     * @throws
     */
    public void read() {
        if (listener != null) {
            Event event = new Event();
            event.setStudent(this);
            // 學生正在讀書...
            listener.isReading(event);
        }
    }
}

事件監聽器:用來監聽Student.read()方法

package com.petro.listener;

/**
 * @ClassName: Listener
 * @description: 事件監聽器
 * @author Petro Chen
 * @date: 2017年9月12日下午11:33:56
 */
public interface Listener {
    /**
     * @description: 學生讀書觸發的事件
     * @param event 事件對象引用,通過這個引用,獲取事件源的引用,然后就可以對事件源進行操作
     * @return void
     * @throws
     */
    public void isReading(Event event);
}

事件對象:持有事件源的引用

package com.petro.listener;
/**
 * @ClassName: Event
 * @description: 事件對象
 * @author Petro Chen
 * @date: 2017年9月12日下午11:41:28
 */
public class Event {
    // 放置事件源的引用
    private Student student;

    public Student getStudent() {
        return student;
    }

    public void setStudent(Student student) {
        this.student = student;
    }
}

  到此為止,我們的監聽模式寫完了,接下來當然是測試啦

測試部分:監聽接口實現

package com.petro.test;

import com.petro.listener.Event;
import com.petro.listener.Listener;
/**
 * @ClassName: ReadListener
 * @description: 監聽器實現,讀書(read方法)監聽器
 * @author Petro Chen
 * @date: 2017年9月13日上午12:03:35
 */
public class ReadListener implements Listener {

    @Override
    public void isReading(Event event) {
        /**
         * 使用 event.getStudent()方法獲取事件源的引用,然后執行相關操作
         */
        System.out.println("正在讀書...");
    }

}

測試部分:程序入口

package com.petro.test;

import com.petro.listener.Student;
/**
 * @ClassName: Test
 * @description: 監聽器模式測試
 * @author Petro Chen
 * @date: 2017年9月13日上午12:07:04
 */
public class Test {
    public static void main(String[] args) {
        ReadListener readListener = new ReadListener();
        Student student = new Student();
        student.setReadListener(readListener);
        // 當執行這個方法時,會自動調用ReadListener.isReading()方法
        student.read();
    }
}

監聽模式demo地址,有需要的可以去clone

https://github.com/MiniPeter/...
結語

  本篇博文到此差不多就結束啦,對本篇博文有建議或者疑惑的可以留言評論哦。歡迎指正錯誤>_<

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70923.html

相關文章

  • 如何使用 Java8 實現觀察者模式?(下)

    摘要:線程安全的實現前面章節介紹了在現代環境下的實現觀察者模式,雖然簡單但很完整,但這一實現忽略了一個關鍵性問題線程安全。截止目前實現了線程安全,在接下來的章節中將介紹提取主題的邏輯并將其類封裝為可重復代碼單元的方式優缺點。 【編者按】本文作者是 BAE 系統公司的軟件工程師 Justin Albano。在本篇文章中,作者通過在 Java8 環境下實現觀察者模式的實例,進一步介紹了什么是觀察...

    afishhhhh 評論0 收藏0
  • JMS 在 SpringBoot 中的使用

    摘要:本文主要講述消息服務在中的使用。所以需要一個監聽容器工廠的概念,即接口,它會引用上面創建好的與的連接工廠,由它來負責接收消息以及將消息分發給指定的監聽器。為了消費消息,訂閱者必須保持運行的狀態。 JMS 在 SpringBoot 中的使用 摘要:本文屬于原創,歡迎轉載,轉載請保留出處:https://github.com/jasonGeng88/blog> 本文所有服務均采用doc...

    Michael_Ding 評論0 收藏0
  • 一起學并發編程 - 利用觀察者模式監聽線程狀態

    摘要:在前面的文章中介紹過觀察者模式及并發編程的基礎知識,為了讓大家更好的了解觀察者模式故而特意寫了這篇番外概述在多線程下我們需要知道當前執行線程的狀態是什么比如運行,關閉,異常等狀態的通知,而且不僅僅是更新當前頁面。 在前面的文章中介紹過 觀察者模式 及 并發編程的基礎知識,為了讓大家更好的了解觀察者模式故而特意寫了這篇番外.. 概述 在Java多線程下,我們需要知道當前執行線程的狀態是...

    Juven 評論0 收藏0
  • Java NIO淺析

    摘要:阻塞請求結果返回之前,當前線程被掛起。也就是說在異步中,不會對用戶線程產生任何阻塞。當前線程在拿到此次請求結果的過程中,可以做其它事情。事實上,可以只用一個線程處理所有的通道。 準備知識 同步、異步、阻塞、非阻塞 同步和異步說的是服務端消息的通知機制,阻塞和非阻塞說的是客戶端線程的狀態。已客戶端一次網絡請求為例做簡單說明: 同步同步是指一次請求沒有得到結果之前就不返回。 異步請求不會...

    yeooo 評論0 收藏0
  • Java Socke 探究

    摘要:在設定時間內接收到相應操作的請求則返回可以處理請求的數量,否則在超時后返回,程序繼續執行。使用接收請求并處理接收到請求后調用返回的集合。保存了處理當前請求的和,并提供了不同的操作類型。默認值為且其值必須小于的值。 Java中的Socket可以分為普通Socket和NioSocket兩種。 普通Socket的用法 Java中的網絡通信是通過Socket實現的,Socket分為Server...

    Imfan 評論0 收藏0

發表評論

0條評論

Taste

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<