当前位置: 首页 > 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://www.yutouwan.com/news/399931/

相关文章:

  • 网站建设丨金手指排名网站文章只被收录网站首页
  • 做网站是不是涉及很多语言职重庆建设机电有限公司网站
  • 广州网站设计公司济南兴田德润o简介图片北京网站制作公司报价
  • 网站制作设及的技术公众号开发者密码
  • 网站免费建站系统网站如何实现多语言
  • 搜索引擎网站推广网站建设 面试
  • 咸阳网站建设培训学校低价网站建设公司
  • 自己有域名要怎么制作网站网站建设有什么优势
  • 网站建立需要什么如何用网站开发工具停止网页进程
  • 长春网站制作都找源晟27微信朋友圈广告在哪里做
  • 网站在线支付方案俄罗斯网站设计
  • html做分页的网站wordpress 首页设计
  • 易企秀 旗下 网站建设如何做自己的小说网站
  • 网站开发需要经过的几个主要阶段logo网站免费
  • 网站标题特殊符号wordpress获取子菜单
  • 做电商都需要什么佛山市seo推广
  • 南通网络科技的公司网站wordpress采集文章教程
  • 如何做单页网站视频潍坊在线制作网站
  • 购物网站的搜索框用代码怎么做网络推广公司运营
  • 域名注册服务网站查询3d绘图培训学校
  • 希腊网站后缀seo公司排行
  • niche网站建设服装微商城网站建设
  • 网站建设的目的及意义卫计网站建设工作计划
  • 怎么能查到网站是哪家公司做的云羽网络网站建设
  • 京东商城的网站建设ps做电商网站流程图
  • html5网站尺寸设计师常用素材网站
  • 建设银行网站如何下载u盾关于建设网站的请示
  • 个人网站 创意西安哪里好玩
  • 网站做链接的意义是什么意思招聘网站开发源代码
  • 微信公众号和网站建设方案怎么制作动图