- 实验目的
(1)掌握Java语言基本语法。
(2)了解策略模式的概念和使用。
(3)锻炼学生的思维能力。
- 实验内容
(1)掌握Java继承的概念与实现
(2)掌握继承中的方法的覆盖和重载
(3)以图片保存格式为例,演示策略模式的应用。
- 实验步骤
- 编写接口ImageSaver,在该接口中定义了sava()方法,代码如下:
public interface ImageSaver {
void save();
}
- 编写类GIFSaver,该类实现了ImageSaver接口。在实现save()方法时将图片保存成了GIF格式。代码如下:
public class GIFSaver implements ImageSaver {
@Override
public void save(){
System.out.println("将图片保存成GIF格式");
}
}
- 编写类JPEGSaver,该类实现了ImageSaver接口。在实现save()方法时将图片保存成了JPEG格式。代码如下:
public class JPEGSaver implements ImageSaver {
@Override
public void save() {
System.out.println("将图片保存成JPEG格式");
}
}
- 编写类PNGSaver,该类实现了ImageSaver接口。在实现save()方法时将图片保存成了PNG格式。代码如下:
public class PNGSaver implements ImageSaver {
@Override
public void save() {
System.out.println("将图片保存成PNG格式");
}
}
- 编写类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;
}
}
}
- 编写类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();
}
}
- 实验结果
运行程序,效果如图所示: