[英]Implementing Design pattern and Spring MVC
如何使用工厂设计模式的单例设计模式?如何在弹簧MVC中实现控制器与jsp之间的通信?
通过在工厂模式界面中实现的每个方法中应用单例模式,可以在工厂方法旁边使用单例
(单例内部方法(只有一个实例可以存在的类)/工厂植入是在服务的接口中,创建许多派生类(方法)的实例)
interface ImageReader {
DecodedImage getDecodeImage();
}
class DecodedImage {
private String image;
public DecodedImage(String image) {this.image = image;}
@Override
public String toString() {return image + ": is decoded";}
}
class GifReader implements ImageReader {
private DecodedImage decodedImage;
public GifReader(String image) {
this.decodedImage = new DecodedImage(image);}
@Override
public DecodedImage getDecodeImage() {return decodedImage;}
}
//this is a method implementing singleton inside a factory pattern
public class Singleton implements ImageReader {
private Singleton() {}
private static class SingletonHolder {private static final Singleton INSTANCE = new
Singleton();}
public static Singleton getInstance() {return SingletonHolder.INSTANCE;}
}
public class FactoryMethodDemo {
public static void main(String[] args) {
DecodedImage decodedImage;
ImageReader reader = null;
String image = args[0];
String format = image.substring(image.indexOf('.') + 1, (image.length()));
if (format.equals("gif")) {
reader = new GifReader(image);
}
if (format.equals("singleton")) {
reader = new Singleton();
}
assert reader == decodedImage;
decodedImage = reader.getDecodeImage();
System.out.println(decodedImage);
}
}
这个网站还有更多的例子https://sourcemaking.com/design_patterns
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.