java--策略模式的应用

13 篇文章 1 订阅
  • 实验目的

(1)掌握Java语言基本语法。

(2)了解策略模式的概念和使用。

(3)锻炼学生的思维能力。

  • 实验内容

(1)掌握Java继承的概念与实现 

(2)掌握继承中的方法的覆盖和重载

(3)以图片保存格式为例,演示策略模式的应用。

  • 实验步骤
  1. 编写接口ImageSaver,在该接口中定义了sava()方法,代码如下:

public interface ImageSaver {

    void save();

}

  1. 编写类GIFSaver,该类实现了ImageSaver接口。在实现save()方法时将图片保存成了GIF格式。代码如下:

public class GIFSaver implements ImageSaver {

    @Override

    public void save(){

        System.out.println("将图片保存成GIF格式");

    }

}

  1. 编写类JPEGSaver,该类实现了ImageSaver接口。在实现save()方法时将图片保存成了JPEG格式。代码如下:

public class JPEGSaver implements ImageSaver {

 

    @Override

    public void save() {

        System.out.println("将图片保存成JPEG格式");

    }

}

  1. 编写类PNGSaver,该类实现了ImageSaver接口。在实现save()方法时将图片保存成了PNG格式。代码如下:

public class PNGSaver implements ImageSaver {

 

    @Override

    public void save() {

        System.out.println("将图片保存成PNG格式");

    }

}

  1. 编写类TypChooser,该类根据用户提供的图片类型来选择合适的图片存储方式。代码如下:

public class TypChooser {

    public static ImageSaver getSaver(String type) {

        if (type.equalsIgnoreCase("GIF")){

            return new GIFSaver();

        }else if(type.equalsIgnoreCase("JPEG")){

            return new JPEGSaver();

        }else if(type.equalsIgnoreCase("PNG")){

            return new PNGSaver();

        }else {

            return null;

        }

    }

}

  1. 编写类User,该类模拟用户的操作,为类型选择器提供图片的类型。代码如下:

public class User {

    public static void main(String[] args) {

        System.out.print("用户选择了GIF格式:");

        ImageSaver imageSaver = TypChooser.getSaver("GIF");

        imageSaver.save();

        System.out.print("用户选择了JPEG格式:");

        imageSaver = TypChooser.getSaver("JPEG");

        imageSaver.save();

        System.out.print("用户选择了PNG格式:");

        imageSaver = TypChooser.getSaver("PNG");

        imageSaver.save();

    }

}

  • 实验结果

运行程序,效果如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜航一直在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值