91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中抽象類與模板方法模式的示例分析

發布時間:2021-09-03 13:15:46 來源:億速云 閱讀:142 作者:小新 欄目:開發技術

這篇文章主要介紹了java中抽象類與模板方法模式的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

    一、抽象類概念

    1.Java中可以定義沒有方法體的方法,該方法由子類來具體實現

    2.該沒有方法體的方法我們稱之為抽象方法,含有抽象方法的類稱之為抽象類

    二、抽象方法的特點

    1.只有方法頭沒有方法體的方法稱為抽象方法

    2.抽象方法用abstract來修飾

    3.抽象方法代表一種不確定的操作或行為

    4.抽象方法不能被調用

    三、抽象類的特點

    1.定義中含有抽象方法的類叫做抽象類

    2.抽象類用abstract來修飾

    3.抽象類代表一種抽象的對象類型

    4.抽象類并不能實例化

    5.抽象類中可以有具體的方法,可以沒有抽象方法

    四、創建抽象類與抽象方法

    抽象類:

    java中抽象類與模板方法模式的示例分析

    抽象方法:

    java中抽象類與模板方法模式的示例分析

    五、抽象類與抽象方法的使用

    抽象類不能實例化,可以讓子類繼承抽象類進行實例化

    java中抽象類與模板方法模式的示例分析

    六、模板方法模式

    1. 定義

    一個模板方法用一些抽象的操作定義一個算法,二而子類將重定義這些操作以提供具體的行為

    2. 意圖

    模板方法模式定義了一個算法的步驟,并允許一個或多個步驟子類為一個或多個步驟提供其具體行為。
    讓子類別在不改變算法架構的情況下,重新定義算法中的某些步驟。

    3. 模式結構

    定義抽象類,為所有子類提供一個算法框架

    java中抽象類與模板方法模式的示例分析

    具體子類,提供工作流程的具體實現

    java中抽象類與模板方法模式的示例分析

    調用類

    java中抽象類與模板方法模式的示例分析

    4. 示例

    1.定義抽象類,為所有子類提供一個算法框架(當然也可以提供多個算法框架)

    2.定義了兩個具體子類,每一個子類負責一個平臺的工作流程的具體實現

    3.調用類就可以根據該套代碼運行的平臺去選擇對應的子類實例化,調用算法框架

    package com.demo;
    
    abstract class Control {
    	//創建模板方法
    	abstract void initUart();
    	abstract String getCommand();
    	abstract void openLight();
    	abstract void closeLight();
    	//創建工作流程1
    	public void work() {
    		String cmd;
    		initUart();
    		cmd = getCommand(); //根據條件執行不同流程
    		if (cmd == "open") {
    			openLight();
    		} else if (cmd == "close") {
    			closeLight();
    		}
    	}
    	//也可創建N個工作流程
    }
    
    class Arduino extends Control {
    	//工作流程具體實現
    	void initUart(){
    		System.out.println("Arduino initUart");
    	}
    	String getCommand(){
    		System.out.println("Arduino getCommand");
    		return "open";
    	}
    	void openLight() {
    		System.out.println("Arduino openLight");
    	}
    	void closeLight() {
    		System.out.println("Arduino closeLight");
    	}
    }
    
    class RaspberryPi extends Control {
    	//工作流程具體實現
    	void initUart(){
    		System.out.println("raspberryPi initUart");
    	}
    	String getCommand(){
    		System.out.println("RaspberryPi getCommand");
    		return "close";
    	}
    	void openLight() {
    		System.out.println("raspberryPi openLight");
    	}
    	void closeLight() {
    		System.out.println("raspberryPi closeLight");
    	}
    }
    
    public class Test {
    	public static void main(String[] args) {
    		//Arduino執行工作流程
    		Arduino one = new Arduino();
    		one.work();
    		//RaspberryPi執行工作流程
    		RaspberryPi two = new RaspberryPi();
    		two.work();
    	}
    }

    運行結果:

    java中抽象類與模板方法模式的示例分析

    感謝你能夠認真閱讀完這篇文章,希望小編分享的“java中抽象類與模板方法模式的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    伊宁县| 清流县| 红安县| 邢台县| 海伦市| 鸡泽县| 伊通| 冕宁县| 库尔勒市| 唐海县| 区。| 泽普县| 白沙| 大石桥市| 中方县| 桑日县| 息烽县| 阿瓦提县| 渑池县| 阳朔县| 冕宁县| 广安市| 潞西市| 兴海县| 资中县| 永顺县| 昭平县| 临海市| 雷州市| 镇江市| 方城县| 肥乡县| 囊谦县| 六安市| 岚皋县| 新宁县| 杭锦旗| 甘洛县| 汉寿县| 高清| 霍山县|