当前位置: 首页 > news >正文

龙华民治网站建设公司网站建设英语翻译

龙华民治网站建设公司,网站建设英语翻译,wordpress cname,建设网站不用模板可以吗引言 今天回看之前总结的抽象工厂模式的实现《Java常用设计模式————抽象工厂模式》#xff0c;聚焦于抽象工厂模式的缺点#xff0c;试着改进了一下。 回顾一下抽象工厂模式的缺点#xff1a; 在添加新的产品类型时#xff0c;难以扩展抽象工厂来生产新种类的产品。…引言 今天回看之前总结的抽象工厂模式的实现《Java常用设计模式————抽象工厂模式》聚焦于抽象工厂模式的缺点试着改进了一下。 回顾一下抽象工厂模式的缺点 在添加新的产品类型时难以扩展抽象工厂来生产新种类的产品。 这是怎么回事呢原来老套的实现方式是为每种类型的产品都创建一个具体的工厂类这个类只生产一种特定类型的产品。因此当有新的类型的产品加入系统时就必须添加一个对应的工厂类来支持这类产品不仅不利于扩展而且会增加大量的工厂类。 例如之前会有如下两个具体产品的工厂类来生产对应类型的产品 今天试着使用泛型的方式得出了一种更加通用的抽象工厂实现方式。可以避免大量工厂的再造。 实现 为了本篇文章的完整性依然将全部实现过程贴出各位同学可以与《Java常用设计模式————抽象工厂模式》进行比较阅读。 一、抽象化产品族 产品族的概念其实很好理解每种类型的产品就是一个产品族它包含多种不同的表现形式例如汽车就是一个产品族它包含卡车、轿车等这些具体的产品隶属于汽车这个产品族。 如图所示创建了电视产品族和汽车产品族。电视产品族包括索尼电视和夏普电视 public interface Television {void play(); } public class SonyTV implements Television{Overridepublic void play() {System.out.println(SonyTV playing...);} }public class SharpTV implements Television{Overridepublic void play() {System.out.println(SharpTV playing...);} } 汽车产品族包括奥迪汽车和奔驰汽车 public interface Car {void run(); } public class Audi implements Car{Overridepublic void run() {System.out.println(Audi running...);} } public class Benz implements Car{Overridepublic void run() {System.out.println(Benz running...);} } 二、创建抽象工厂及泛型工厂 抽象工厂是具体工厂的进一步抽象化在原版的抽象工厂模式实现中会存在多个具体的产品工厂而在本例中将会以泛型化的实现类来代替它们而且即便再增加新的产品族也不需要修改泛型工厂 public interface FactoryT {T getProduct(Class? extends T clazz); } public class GenericFactoryT implements FactoryT {Overridepublic T getProduct(Class? extends T clazz) {if (clazz null)return null;try {T obj (T) clazz.newInstance();return obj;} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return null;} } 三、测试产品的生产 public class MyProgram {public static void main(String[] args) {FactoryCar carFactory new GenericFactory();FactoryTelevision tvFactory new GenericFactory();Car benz carFactory.getProduct(Benz.class);Car audi carFactory.getProduct(Audi.class);benz.run();audi.run();Television sonyTV tvFactory.getProduct(SonyTV.class);Television sharpTV tvFactory.getProduct(SharpTV.class);sonyTV.play();sharpTV.play();} } 执行结果 总结 抽象工厂是一种非常有趣的设计模式它隔离了对象创建的过程并且可以应用反射机制来完成这一经典的设计模式。但传统的实现需要具体每一个产品族的工厂这样就依然没有提高通用性。本例中使用泛型的工厂方式不需要为具体工厂的创建而增加新的编码。这种方式需要注意泛型的实现使用? extends T可以完美的应对具体产品生产的需要。是一个非常不错的实现手段。 鸣谢 《Java常用设计模式————抽象工厂模式》 《Java泛型初探————泛型通配》
http://wiki.neutronadmin.com/news/399931/

相关文章:

  • 茌平县建设局网站公司网站建设计入什么费用
  • 律师在哪个网站做千库网素材
  • 做局域网站数据库石家庄企业建站
  • 上线了自助建站济南品牌网站建设价格低
  • 宁波网站制作出售数据统计网站
  • 访问国外网站好慢深圳东门属于哪个区
  • 网站充值记账凭证怎么做开发高端网站建设
  • 无锡画室网站建设如何优化网站首页代码
  • 婚纱网站制作怎么制作表白链接
  • 网站跳出率高还是低网站建设公司知名
  • 网站建设和维护需要学的东西几个小时学wordpress
  • 网站推广应该怎么做一台手机登录微信网页版
  • 建立一个自己的网站需要多少钱长春建站网站建设
  • wordpress 建站的利弊公司网站建设注意什么
  • 网站营销seowordpress 开源主题
  • seo做的很好的网站网站权重2的网站
  • 类似商城网站开发策划书做一个页面多少钱
  • 做的网站打不开亚马逊跨境电商开店流程及费用
  • 网站建设开发多少钱惠州网络运营
  • 做网站要招什么样的程序员百度广告联盟
  • 房地产网站模板库最新网络营销方式有哪些
  • 网站开发的收获体会网站建设管理中se是什么意思
  • 网站 png宣城网站seo
  • 天津做网站得公司网站营销推广有哪些
  • 湖北建设网站首页网站的导航栏怎么做
  • 网站助手 伪静态wp标题 wordpress
  • 重庆做商城网站建设可以制作试卷的app
  • 贵州省公路建设集团有限公司网站济宁网络推广公司
  • 网站如何做站内站wordpress 伪静态 win
  • 北京商务网站建设html网站制作模板