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

辽宁省建设工程信息网官网新网站入口官方西安做网站的哪家好

辽宁省建设工程信息网官网新网站入口官方,西安做网站的哪家好,广州市又恢复48小时核酸检测,怎么找有赞做网站工厂模式的介绍 工厂模式提供了一种创建对象的方式#xff0c;而无需指定要创建的具体类。 工厂模式属于创建型模式#xff0c;它在创建对象时提供了一种封装机制#xff0c;将实际创建对象的代码与使用代码分离。 应用场景#xff1a;定义一个创建对象的接口#xff0…工厂模式的介绍 工厂模式提供了一种创建对象的方式而无需指定要创建的具体类。 工厂模式属于创建型模式它在创建对象时提供了一种封装机制将实际创建对象的代码与使用代码分离。 应用场景定义一个创建对象的接口让其子类自己决定实例化哪一个工厂类工厂模式使其创建过程延迟到子类进行。 工厂模式包含以下几个核心角色 抽象产品Abstract Product定义了产品的共同接口或抽象类。它可以是具体产品类的父类或接口规定了产品对象的共同方法。具体产品Concrete Product实现了抽象产品接口定义了具体产品的特定行为和属性。抽象工厂Abstract Factory声明了创建产品的抽象方法可以是接口或抽象类。它可以有多个方法用于创建不同类型的产品。具体工厂Concrete Factory实现了抽象工厂接口负责实际创建具体产品的对象。 UML模型图如下 dubbo源码中的应用 所有的注册中心实现都是通过对应的工厂创建的。工厂类之间的关系如图 AbstractRegistryFactory 实现了 RegistryFactory 接口的 getRegistry(URL url)方法是一个通用实现主要完成了加锁以及调用抽象模板方法createRegistry(URL url)创建具体实现等操作并缓存在内存中。 public Registry getRegistry(URL url) {if (registryManager null) {throw new IllegalStateException(Unable to fetch RegistryManager from ApplicationModel BeanFactory. Please check if setApplicationModel has been override.);}Registry defaultNopRegistry registryManager.getDefaultNopRegistryIfDestroyed();if (null ! defaultNopRegistry) {return defaultNopRegistry;}url URLBuilder.from(url).setPath(RegistryService.class.getName()).addParameter(INTERFACE_KEY, RegistryService.class.getName()).removeParameter(TIMESTAMP_KEY).removeAttribute(EXPORT_KEY).removeAttribute(REFER_KEY).build();String key createRegistryCacheKey(url);Registry registry null;boolean check url.getParameter(CHECK_KEY, true) url.getPort() ! 0;// 锁定注册表访问过程以确保注册表的单个实例registryManager.getRegistryLock().lock();try {defaultNopRegistry registryManager.getDefaultNopRegistryIfDestroyed();if (null ! defaultNopRegistry) {return defaultNopRegistry;}registry registryManager.getRegistry(key);if (registry ! null) {return registry;}//创建注册中心通过 spi/iocregistry createRegistry(url);if (check registry null) {throw new IllegalStateException(Can not create registry url);}if (registry ! null) {registryManager.putRegistry(key, registry);}} catch (Exception e) {if (check) {throw new RuntimeException(Can not create registry url, e);} else {// 1-11 无法获取或创建注册表服务对象。LOGGER.warn(REGISTRY_FAILED_CREATE_INSTANCE, , , Failed to obtain or create registry , e);}} finally {// 释放锁registryManager.getRegistryLock().unlock();}return registry;}每种注册中心都有自己具体的工厂类代码中没有显式的判断。主要是判断方法在就在RegistryFactory接口中该接口里有一个Registry getRegistry(URL url)方法该方法上有Adaptive({“protocol”))注解。 SPI(scope APPLICATION) public interface RegistryFactory {/*** 配置连接到注册表支持的模式*/Adaptive({PROTOCOL_KEY})Registry getRegistry(URL url); } Adaptive这个注解会自动生成代码实现一些逻辑它的value参数会从URL中获取protocol键的值并根据获取的值来调用不同的工厂类。例如当url.protocol nacos时获得NacosRegistryFactory实现类。 dubbo支持的注册中心如下图 其中各类的作用如下 AbstractRegistry提供由缓存文件支持的故障保护注册表服务。当注册表中心崩溃时使用者/提供者仍然可以找到彼此。FailbackRegistry提供自动重试功能的注册表服务的模板实现。CacheableFailbackRegistry基于FailbackRegistry它添加了URLAddress和URLParam缓存以节省RAM空间。ServiceDiscoveryRegistryServiceDiscoveryRegistry是一个非常特殊的Registry实现用于桥接旧的接口级服务发现模型。其中在3.0中以兼容的方式引入了新的服务发现模型。NacosRegistryNacos注册中心MulticastRegistryMulticast 注册中心不需要启动任何中心节点只要广播地址一样就可以互相发现。ZookeeperRegistryzookeeper注册中心 总结 本文深入探讨了Dubbo框架中注册中心组件的设计与实现。介绍了工厂模式的基本概念以及它在设计模式中的角色。通过源码分析揭示了Dubbo是如何利用工厂模式来管理不同类型的注册中心实例如ZooKeeper、Nacos等以及如何通过扩展接口来实现对新注册中心类型的快速支持。 Dubbo注册中心的设计体现了工厂模式的强大之处为构建灵活、可扩展的分布式系统提供了有力的设计参考。通过继续探索和实践这些设计原则我们可以进一步提升我们的系统设计能力以应对不断变化的技术挑战。
http://www.hkea.cn/news/14362178/

相关文章:

  • 怎么做集团网站seo外包公司哪家好
  • 驰业传媒网站建设动态域名解析
  • 如何做网站线上监控蓝色风格企业网站
  • 免费建筑图纸下载网站贵州建站互联网科技有限公司
  • 北京完美建设有限公司网站光谷中心城建设投资有限公司网站
  • 网站开发技术支持与保障wordpress 主题介绍
  • 中卫网站推广网络营销爱查企业在线查询
  • 创建网站需要哪些过程关键词歌词简谱
  • 建设银行网站会员登陆wordpress 添加设置方法
  • 嘉兴网络项目建站公司建设掌上银行官方网站
  • 广安门外网站建设403网站打开免费
  • 做网站备案要处省的电话号码自己做的网站可以卖
  • 网站内容的重要性电子商务网站建设与实例
  • 遵义网站制作教程太原网站建设模板站
  • 做网站一班需要多少钱中国农业建设网站
  • 爱狼戈网站建设网站建设方案及预算
  • 360网站建设公司直播网站开发平台
  • 阿里巴巴网站首页怎么制作秦州区建设局网站
  • 重庆专业微信网站制作诸城网站建设公司排名
  • 表情包制作网站wordpress实现下载功能
  • 电子商务网站采用的开发技术做海鱼的网站
  • 如何做网站知乎大庆网站建设黑icp备1900
  • 山东省网站备案郑州专业做网站
  • 网站综合营销方案wordpress apply_filter
  • 泰安建材网站建设电话wordpress背景图更改
  • 专门做字体设计的网站用PS怎么做网站界面
  • 做网站界面多少钱做100个网站效果图
  • 临汾哪里有做网站的做视频解析网站是犯法的么
  • 北京一家专门做会所的网站专门做网上链接推广的网站
  • 做企业网站时需要注意哪些地方定制网站制作公司