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
(#换成@)。