你的位置:首页 > 软件开发 > Java > 漫谈Java实例化类

漫谈Java实例化类

发布时间:2016-03-21 01:00:06
Java 中实例化类的动作,你是否还是一成不变 new 对应对象呢? 经手的项目多了,代码编写量自然会增加,渐渐的会对设计模式产生感觉。 怎样使书写出来的类实例化动作,高内聚,低耦合,又兼具一定的扩展能力呢? 本文试图从几段鲜活的代码入手 ...

    Java 中实例化类的动作,你是否还是一成不变 new 对应对象呢?

    经手的项目多了,代码编写量自然会增加,渐渐的会对设计模式产生感觉。

    怎样使书写出来的类实例化动作,高内聚,低耦合,又兼具一定的扩展能力呢?

    本文试图从几段鲜活的代码入手,给大家呈现不一样的 Java 实例化类。

    下面代码取自 com.google.zxing 源码实现:

public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType, ?> hints) throws WriterException {    Object writer;    switch(format.ordinal()) {    case 1:      writer = new AztecWriter();      break;    case 2:      writer = new CodaBarWriter();      break;    case 3:      writer = new Code39Writer();      break;    case 4:    case 10:    case 13:    case 14:    default:      throw new IllegalArgumentException("No encoder available for format " + format);    case 5:      writer = new Code128Writer();      break;    case 6:      writer = new DataMatrixWriter();      break;    case 7:      writer = new EAN8Writer();      break;    case 8:      writer = new EAN13Writer();      break;    case 9:      writer = new ITFWriter();      break;    case 11:      writer = new PDF417Writer();      break;    case 12:      writer = new QRCodeWriter();      break;    case 15:      writer = new UPCAWriter();      break;    case 16:      writer = new UPCEWriter();    }    return ((Writer)writer).encode(contents, format, width, height, hints);  }

原标题:漫谈Java实例化类

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。