标签:lis gbk 代码 通过 todo 功能 cti ibus static
package pattern.chp02.facroty;/*** 类描写叙述:汽车接口** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 10:50:10 AM Jing Created.**/public interface ICar {}
/*** 类描写叙述:高档汽车** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 10:52:06 AM Jing Created.**/public class TopCar implements ICar{}
/*** 类描写叙述:中档汽车** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 10:52:56 AM Jing Created.**/public class MidCar implements ICar {}
package pattern.chp02.facroty;/*** 类描写叙述:抵挡汽车** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 10:53:25 AM Jing Created.**/public class LowCar implements ICar {}
/**** @(#) CarSimpleFactory.java* @Package pattern.chp02.facroty** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty;/*** 类描写叙述:汽车工厂类** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 10:54:16 AM Jing Created.**/public class CarSimpleFactory {/**** 方法说明:依据传入的汽车类型,返回不同的对象** Author: Jing Create Date: Dec 18, 2014 11:19:05 AM** @param carType* @return* @return ICar*/public static ICar createCar(CarType carType) {ICar obj = null;if (carType == CarType.TOP_CAR) {obj = new TopCar();} else if (carType == CarType.MID_CAR) {obj = new MidCar();} else if (carType == CarType.LOW_CAR) {obj = new LowCar();}return obj;}}
/**** @(#) CarType.java* @Package pattern.chp02.facroty** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty;/*** 类描写叙述:汽车类型** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 11:14:34 AM Jing Created.**/public enum CarType {/*** 高档汽车*/TOP_CAR,/*** 中档汽车*/MID_CAR,/*** 抵挡汽车*/LOW_CAR;}
/**** @(#) CarTest.java* @Package pattern.chp02.facroty** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty;/*** 类描写叙述:** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 11:29:07 AM Jing Created.**/public class CarTest {public static void main(String[] args) {ICar obj = CarSimpleFactory.createCar(CarType.LOW_CAR);System.out.println(obj);//pattern.chp02.facroty.LowCar@19821f}}
package pattern.chp02.facroty;/*** 类描写叙述:抽象工厂接口** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 2:27:41 PM Jing Created.**/public abstract class AbstractFactory {/**** 方法说明:创建ICar对象** Author: Jing* Create Date: Dec 18, 2014 2:28:12 PM** @return* @return ICar*/public abstract ICar create();}
package pattern.chp02.facroty;/*** 类描写叙述:高档汽车工厂类** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 2:36:38 PM Jing Created.**/public class TopFactory extends AbstractFactory {@Overridepublic ICar create() {return new TopCar();}}
public class CarTest {public static void main(String[] args) {ICar obj = CarSimpleFactory.createCar(CarType.LOW_CAR);System.out.println(obj);AbstractFactory factory = new TopFactory();ICar car = factory.create();System.out.println(car);//pattern.chp02.facroty.TopCar@9304b1}}
/**** @(#) IBus.java* @Package pattern.chp02.facroty** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty;/*** 类描写叙述:公共汽车** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 3:05:10 PM Jing Created.**/public interface IBus {}
/**** @(#) UpBus.java* @Package pattern.chp02.facroty** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty;/*** 类描写叙述:高级公共汽车** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 3:05:46 PM Jing Created.**/public class UpBus implements IBus{}
/**** @(#) MidBus.java* @Package pattern.chp02.facroty** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty;/*** 类描写叙述:中档公共汽车** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 3:17:48 PM Jing Created.**/public class MidBus implements IBus {}
/**** @(#) AbstractFactory.java* @Package pattern.chp02.facroty** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty;/*** 类描写叙述:抽象工厂接口** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 2:27:41 PM Jing Created.**/public abstract class AbstractFactory {/**** 方法说明:创建ICar对象** Author: Jing* Create Date: Dec 18, 2014 2:28:12 PM** @return* @return ICar*/public abstract ICar create();/**** 方法说明:创建公共汽车IBus对象** Author: Jing* Create Date: Dec 18, 2014 3:18:58 PM** @return* @return IBus*/public abstract IBus createBus();}
/**** @(#) TopFactory.java* @Package pattern.chp02.facroty** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty;/*** 类描写叙述:高档汽车工厂类** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 2:36:38 PM Jing Created.**/public class TopFactory extends AbstractFactory {@Overridepublic ICar create() {return new TopCar();}@Overridepublic IBus createBus() {return new UpBus();}}
/**** @(#) IRead.java* @Package pattern.chp02.facroty.file** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.file;/*** 类描写叙述:读取文件接口类** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 3:27:54 PM Jing Created.**/public interface IRead {/**** 方法说明:依据文件名读取文件** Author: Jing* Create Date: Dec 18, 2014 3:28:25 PM** @param fileName* @return void*/public void read(String fileName);}
/**** @(#) AbstractImgRead.java* @Package pattern.chp02.facroty.file** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.file;/*** 类描写叙述:图像读取抽象类** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 3:32:14 PM Jing Created.**/public abstract class AbstractImgRead implements IRead {public abstract void read(String fileName);}
/**** @(#) AbstractTextRead.java* @Package pattern.chp02.facroty.file** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.file;/*** 类描写叙述:获取文本文件的抽象类** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 3:29:14 PM Jing Created.**/public abstract class AbstractTextRead implements IRead {public abstract void read(String fileName) ;}
/**** @(#) BMPImgRead.java* @Package pattern.chp02.facroty.file** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.file;/*** 类描写叙述:BMP图片读取** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 3:35:57 PM Jing Created.**/public class BMPImgRead extends AbstractImgRead {@Overridepublic void read(String fileName) {// TODO Auto-generated method stub}}
/**** @(#) AbstractFactory.java* @Package pattern.chp02.facroty.file** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.file;/*** 类描写叙述:工厂类** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 3:49:15 PM Jing Created.**/public abstract class AbstractFactory {/**** 方法说明:创建相应的文件读取实例** Author: Jing* Create Date: Dec 18, 2014 3:49:46 PM** @return* @return IRead*/public abstract IRead create();}
/**** @(#) GBKTextFactory.java* @Package pattern.chp02.facroty.file** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.file;/*** 类描写叙述:GBK文本读取工厂类** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 3:50:24 PM Jing Created.**/public class GBKTextFactory extends AbstractFactory {@Overridepublic IRead create() {return null;}}
/**** @(#) IRead.java* @Package pattern.chp02.facroty.read** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.read;/*** 类描写叙述:读文本、图像文件接口** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 4:14:28 PM Jing Created.**/public interface IRead<T> {/**** 方法说明:依据传入的文件名称读取文件** Author: Jing Create Date: Dec 18, 2014 4:15:27 PM** @param in* @return* @return T*/T read(String... in);}
/**** @(#) ImageRead.java* @Package pattern.chp02.facroty.read** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.read;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/*** 类描写叙述:图像文件读取** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 5:16:26 PM Jing Created.**/public class ImageRead implements IRead<ImageInfo>{public ImageInfo read(String... in) {BufferedImage bi = null;File f = new File(in[0]);//in[0]存储文件名称try {bi = ImageIO.read(f);} catch (IOException e) {e.printStackTrace();}int width = bi.getWidth();int height = bi.getHeight();int rgb[] = new int[width * height];bi.getRGB(0, 0, width, height, rgb, width, height);ImageInfo info = new ImageInfo();info.setWidth(width);info.setHeight(height);info.setRGB(rgb);return info;}}
/**** @(#) TextRead.java* @Package pattern.chp02.facroty.read** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.read;import java.io.File;import java.io.FileInputStream;/*** 类描写叙述:文本读取** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 4:17:19 PM Jing Created.**/public class TextRead implements IRead<String> {public String read(String... in) {String result = null;try{File file = new File(in[0]);long len = file.length();//文件长度FileInputStream fis = new FileInputStream(in[0]);//in[0] 存储文件名byte buf[] = new byte[(int)len];fis.read(buf);result = new String(buf, in[1]);//in[1]存储编码方式fis.close();}catch(Exception e){System.out.println(e.getMessage());}return result;}}
/**** @(#) ImageInfo.java* @Package pattern.chp02.facroty.read** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.read;/*** 类描写叙述:图像信息** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 4:31:28 PM Jing Created.**/public class ImageInfo {/*** 图像宽度*/private int width;/*** 图像高度*/private int height;/*** 红色分量*/private int r[][];/*** 绿色分量*/private int g[][];/*** 颜色分量*/private int b[][];/**** 方法说明:设置三基色信息** Author: Jing Create Date: Dec 18, 2014 4:33:51 PM** @param rgb* @return void*/public void setRGB(int rgb[]) {r = new int[height][width];g = new int[height][width];b = new int[height][width];int pos = 0;for (int i = 0; i < height; i++) {pos = width * i;for (int j = 0; j < width; j++) {r[i][j] = (rgb[pos + j] & 0xff0000) >> 16;g[i][j] = (rgb[pos + j] & 0xff0000) >>8;b[i][j] = (rgb[pos + j] & 0xff0000);}}}/*** @return the width*/public int getWidth() {return width;}/*** @param width* the width to set*/public void setWidth(int width) {this.width = width;}/*** @return the height*/public int getHeight() {return height;}/*** @param height* the height to set*/public void setHeight(int height) {this.height = height;}/*** @return the r*/public int[][] getR() {return r;}/*** @param r* the r to set*/public void setR(int[][] r) {this.r = r;}/*** @return the g*/public int[][] getG() {return g;}/*** @param g* the g to set*/public void setG(int[][] g) {this.g = g;}/*** @return the b*/public int[][] getB() {return b;}/*** @param b* the b to set*/public void setB(int[][] b) {this.b = b;}}
/**** @(#) AbstractFactory.java* @Package pattern.chp02.facroty.read** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.read;/*** 类描写叙述:抽象工厂** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 5:27:02 PM Jing Created.**/public abstract class AbstractFactory {/**** 方法说明:获取相应的读取对象** Author: Jing* Create Date: Dec 18, 2014 5:30:08 PM** @return* @return IRead*/@SuppressWarnings("unchecked")public abstract IRead create();/**** 方法说明:使用反射。依据掺入的类名生成相应的对象** Author: Jing* Create Date: Dec 18, 2014 5:32:59 PM** @param className* @return* @return AbstractFactory*/static AbstractFactory create(String className){AbstractFactory factory = null;try{Class<?> clazz = Class.forName(className);factory = (AbstractFactory) clazz.newInstance();}catch(Exception e){e.printStackTrace();}return factory;}}
/**** @(#) ImageFactory.java* @Package pattern.chp02.facroty.read** Copyright ? JING Corporation. All rights reserved.**/package pattern.chp02.facroty.read;/*** 类描写叙述:图像读取** @author: Jing* @version $Id: Exp$** History: Dec 18, 2014 5:30:34 PM Jing Created.**/public class ImageFactory extends AbstractFactory {@SuppressWarnings("unchecked")@Overridepublic IRead create() {return new ImageRead();}}
读书笔记_java设计模式深入研究 第三章 工厂模式 Factory
标签:lis gbk 代码 通过 todo 功能 cti ibus static
原文地址:http://www.cnblogs.com/jzdwajue/p/6881841.html