标签:
接口中的方法都是什么样子的呢?
public interface ImageSave { //接口中的方法可以有返回值类型 //接口里的方法中可以有参数 String getName(); //String getType(String Type); void save(); //void saveDouble(String Type,long kb); }
public class GIFSaver implements ImageSave{ @Override public String getName() { return "GIF"; } @Override public void save() { System.out.println("将图片保存成GIF格式"); } }
public class JPEGSaver implements ImageSave{ @Override public String getName() { return "JPEG"; } @Override public void save() { System.out.println("将图片保存成JPEG格式"); } }
public class PNGSaver implements ImageSave{ @Override public String getName() { return "PNG"; } @Override public void save() { System.out.println("将图片保存成PNG格式"); } }
public class ImageTypeChooser { public static ImageSave 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; } } }
实现类赋予接口其实还是面向对象思想在起作用,客户是对厨师下命令的,厨师来做不同的菜,接口延伸到的是厨师,厨师来做菜
public class User { public static void main(String[] args) { System.out.println("用户选择了GIF格式"); ImageSave GIFSaver = ImageTypeChooser.getSaver("GIF"); GIFSaver.save(); System.out.println("用户选择了JPEG格式"); ImageSave JPEGSaver = ImageTypeChooser.getSaver("JPEG"); JPEGSaver.save(); System.out.println("用户选择了PNG格式"); ImageSave PNGSaver = ImageTypeChooser.getSaver("PNG"); PNGSaver.save(); } }
标签:
原文地址:http://www.cnblogs.com/lonely-buffoon/p/5573549.html