在使用图像处理软件处理图片后,需要选择一种格式进行保存。然而各种格式在底层实现的算法并不相同,这刚好适合策略模式。编写程序,演示如何使用策略模式与简单工厂模式组合进行开发。
思路如下:
代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 |
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(); }} |
效果如图:


原文:http://www.cnblogs.com/cysolo/p/3558671.html