欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實現(xiàn)策略模式使用示例

 更新時間:2014年02月21日 11:53:06   作者:  
在使用圖像處理軟件處理圖片后,需要選擇一種格式進行保存。然而各種格式在底層實現(xiàn)的算法并不相同,這剛好適合策略模式。編寫程序,演示如何使用策略模式與簡單工廠模式組合進行開發(fā)

思路如下:

使用interface來定義一個接口,在該接口中定義save()方法;
根據(jù)圖片格式定義不同的類,分別在這些類中使用關(guān)鍵字implements實現(xiàn)接口;
創(chuàng)建一個實現(xiàn)選擇的類,在該類中定義實現(xiàn)選擇的方法,該方法返回值為對應(yīng)的圖片保存類;
在主方法中實現(xiàn)接口。
代碼如下:

復(fù)制代碼 代碼如下:

public interface ImageSaver {
    void save();//定義save()方法
}

public class GIFSaver implements ImageSaver {
    @Override
    public void save() {//實現(xiàn)save()方法
        System.out.println("將圖片保存成GIF格式");
    }
}

public class JPEGSaver implements ImageSaver {

    @Override
    public void save() {
        System.out.println("將圖片保存成JPG格式");
    }
}

public class PNGSaver implements ImageSaver {

    @Override
    public void save() {
        System.out.println("將圖片保存成PNG格式");
    }

}

public class TypeChooser {
    public static ImageSaver getSaver(String type) {
        if (type.equalsIgnoreCase("GIF")) {//使用if else語句來判斷圖片的類型
            return new GIFSaver();
        } else if (type.equalsIgnoreCase("JPEG")) {
            return new JPEGSaver();
        } else if (type.equalsIgnoreCase("PNG")) {
            return new PNGSaver();
        } else {
            return null;
        }
    }
}

public class User {
    public static void main(String[] args) {
        System.out.print("用戶選擇了GIF格式:");
        ImageSaver saver = TypeChooser.getSaver("GIF");//獲得保存圖片為GIF類型的對象
        saver.save();
        System.out.print("用戶選擇了JPEG格式:");//獲得保存圖片為JPEG類型的對象
        saver = TypeChooser.getSaver("JPEG");
        saver.save();
        System.out.print("用戶選擇了PNG格式:");//獲得保存圖片為PNG類型的對象
        saver = TypeChooser.getSaver("PNG");
        saver.save();
    }
}

相關(guān)文章

  • Java多線程-線程的同步與鎖的問題

    Java多線程-線程的同步與鎖的問題

    線程的同步是為了防止多個線程訪問一個數(shù)據(jù)對象時,對數(shù)據(jù)造成的破壞。本篇文章主要介紹了Java多線程-線程的同步與鎖的問題,有興趣的可以了解一下。
    2016-11-11
  • JAVA包裝類及自動封包解包實例代碼

    JAVA包裝類及自動封包解包實例代碼

    JAVA包裝類及自動封包解包實例代碼,需要的朋友可以參考一下
    2013-03-03
  • java實現(xiàn)遞歸菜單樹

    java實現(xiàn)遞歸菜單樹

    這篇文章主要為大家詳細介紹了java實現(xiàn)遞歸菜單樹,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 在eclipse中使用SVN的實現(xiàn)方法(圖文教程)

    在eclipse中使用SVN的實現(xiàn)方法(圖文教程)

    這篇文章主要介紹了在eclipse中使用SVN的實現(xiàn)方法(圖文教程),文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • java8快速實現(xiàn)List轉(zhuǎn)map 、分組、過濾等操作

    java8快速實現(xiàn)List轉(zhuǎn)map 、分組、過濾等操作

    這篇文章主要介紹了java8快速實現(xiàn)List轉(zhuǎn)map 、分組、過濾等操作,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Spring?boot?admin?服務(wù)監(jiān)控利器詳解

    Spring?boot?admin?服務(wù)監(jiān)控利器詳解

    這篇文章主要介紹了Spring?boot?admin?服務(wù)監(jiān)控利器詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Java語言實現(xiàn)簡單FTP軟件 FTP軟件遠程窗口實現(xiàn)(6)

    Java語言實現(xiàn)簡單FTP軟件 FTP軟件遠程窗口實現(xiàn)(6)

    這篇文章主要為大家詳細介紹了Java語言實現(xiàn)簡單FTP軟件,F(xiàn)TP軟件遠程窗口的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Java基礎(chǔ)篇之反射機制示例詳解

    Java基礎(chǔ)篇之反射機制示例詳解

    反射是Java可以提供的一個靈活又強大的功能,使用Java反射,您可以知道這個類在運行時具有什么屬性和方法,也可以修改屬性,調(diào)用方法,創(chuàng)建類的實例,這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)篇之反射機制的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • IDEA?設(shè)置?SpringBoot?logback?彩色日志的解決方法?附配置文件

    IDEA?設(shè)置?SpringBoot?logback?彩色日志的解決方法?附配置文件

    這篇文章主要介紹了IDEA?設(shè)置?SpringBoot?logback?彩色日志(附配置文件)的操作方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-12-12
  • Java實現(xiàn)根據(jù)模板自動生成新的PPT

    Java實現(xiàn)根據(jù)模板自動生成新的PPT

    這篇文章主要介紹了如何利用Java代碼自動生成PPT,具體就是查詢數(shù)據(jù)庫數(shù)據(jù),然后根據(jù)模板文件(PPT),將數(shù)據(jù)庫數(shù)據(jù)與模板文件(PPT),進行組合一下,生成新的PPT文件。感興趣的可以了解一下
    2022-02-02

最新評論