《软件案例分析ch3》由会员分享,可在线阅读,更多相关《软件案例分析ch3(50页珍藏版)》请在金锄头文库上搜索。
1、创建模式创建模式创建模式综述创建模式综述z简单工厂(Simple Factory)z工厂方法(Factory Method)z抽象工厂模式(Abstract Factory)z建造模式(Builder)z原型模式(Prototype)1 简单工厂简单工厂(Simple Factory)z又称为静态工厂方法(Static Factory Method);z由一个工厂对象决定创建出哪一种产品类的实例;z所有产品实现同一个接口。1.2 简单工厂方法类图简单工厂方法类图FactorycreateProduct()AbstractProductYourProductClientBmpProcessorB
2、mpProcessor()resizeImg(data : byte) : byteImageProcessorresizeImg(data : byte) : byteJpgProcessJpgProcess()resizeImg(data : byte) : byteGifProcessorGifProcessor()resizeImg(data : byte) : byteImgProcessorFactorycreateImgProcessor() : ImageProcessor1.3 示例示例1.4 简单工厂方法代码简单工厂方法代码public class ImgProcessor
3、Factorypublic static ImgProcessor createImgProcessor(String format)if(format.equals(“jpg”)return new MyProcessor();else if(format.equals(“bmp”)return new BmpProcessor.public Interface ImgProcessorpublic byte resizeImg(byte data);public class JpgProcessor implements ImgProcessorpublic byte resizeImg(
4、byte data).1.5 简单工厂方法代码续简单工厂方法代码续1.6简单工厂方法的简化实现简单工厂方法的简化实现AbstractProductYourProductBmpProcessorBmpProcessor()resizeImg(data : byte) : byteJpgProcessJpgProcess()resizeImg(data : byte) : byteGifProcessorGifProcessor()resizeImg(data : byte) : byteIm g P ro ce s s o rresizeImg(data : byte) : bytecreateImgProcessor() : ImgProcessor1.7示例示例1.8 简单工厂简化实现的另一个例子简单工厂简化实现的另一个例子DateFormatgetDateInstance() : DateFormatSimpleDateFormat