java實現策略模式使用樣本_java

來源:互聯網
上載者:User

思路如下:

使用interface來定義一個介面,在該介面中定義save()方法;
根據圖片格式定義不同的類,分別在這些類中使用關鍵字implements實現介面;
建立一個實現選擇的類,在該類中定義實現選擇的方法,該方法傳回值為對應的圖片儲存類;
在主方法中實現介面。
代碼如下:

複製代碼 代碼如下:

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

public class GIFSaver implements ImageSaver {
    @Override
    public void save() {//實現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();
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.