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

网站建设公司 电话销售没什么效果平顶山做网站哪家好

网站建设公司 电话销售没什么效果,平顶山做网站哪家好,极速网站建设定制价格,东莞专业网站制作设计依赖注入通俗解释最近#xff0c;我们公司开始开发一个新的基于Java的Web应用程序#xff0c;经过一些评估过程#xff0c;我们决定使用Spring。 但是许多团队成员并不了解Spring和Dependency Injection的原理。 因此#xff0c;我被要求给出一个速成班#xff0c;讲解什么… 依赖注入通俗解释 最近我们公司开始开发一个新的基于Java的Web应用程序经过一些评估过程我们决定使用Spring。 但是许多团队成员并不了解Spring和Dependency Injection的原理。 因此我被要求给出一个速成班讲解什么是依赖注入和Spring的基础知识。 我没有讲所有有关IOC / DI的理论而是想举例说明。 要求我们将获得一些客户地址并且需要验证该地址。 经过一番评估我们考虑使用Google地址验证服务。 传统不良方法 只需创建一个AddressVerificationService类并实现逻辑即可。 假定GoogleAddressVerificationService是Google提供的一项服务该服务将Address作为字符串并返回经度/纬度。 class AddressVerificationService {public String validateAddress(String address){GoogleAddressVerificationService gavs new GoogleAddressVerificationService();String result gavs.validateAddress(address); return result;} } 这种方法的问题 1.如果要更改地址验证服务提供商则需要更改逻辑。 2.您不能使用某些虚拟AddressVerificationService进行单元测试使用模拟对象 由于某些原因客户要求我们支持多个AddressVerificationService Providers因此我们需要确定在运行时使用哪种服务。 为了适应这一点您可能会想到更改以下类 class AddressVerificationService { //This method validates the given address and return longitude/latitude details.public String validateAddress(String address){String result null;int serviceCode 2; // read this code value from a config fileif(serviceCode 1){GoogleAddressVerificationService googleAVS new GoogleAddressVerificationService();result googleAVS.validateAddress(address);} else if(serviceCode 2){YahooAddressVerificationService yahooAVS new YahooAddressVerificationService();result yahooAVS.validateAddress(address);}return result;} } 这种方法的问题   1.每当需要支持新的服务提供商时都需要使用if-else-if添加/更改逻辑。 2.您不能使用某些虚拟AddressVerificationService进行单元测试使用模拟对象 IOC / DI方法 在上述方法中AddressVerificationService负责控制其依赖项的创建。 因此只要其依赖项发生更改AddressVerificationService就会更改。 现在让我们使用IOC / DI模式重写AddressVerificationService。 class AddressVerificationService{private AddressVerificationServiceProvider serviceProvider;public AddressVerificationService(AddressVerificationServiceProvider serviceProvider) {this.serviceProvider serviceProvider;}public String validateAddress(String address){return this.serviceProvider.validateAddress(address);}}interface AddressVerificationServiceProvider{public String validateAddress(String address);} 在这里我们注入了AddressVerificationService依赖项AddressVerificationServiceProvider。 现在让我们使用多个提供程序服务来实现AddressVerificationServiceProvider。 class YahooAVS implements AddressVerificationServiceProvider{Overridepublic String validateAddress(String address) {System.out.println(Verifying address using YAHOO AddressVerificationService);return yahooAVSAPI.validate(address);} }class GoogleAVS implements AddressVerificationServiceProvider{Overridepublic String validateAddress(String address) {System.out.println(Verifying address using Google AddressVerificationService);return googleAVSAPI.validate(address);}} 现在客户可以选择使用哪个服务提供商的服务如下所示 AddressVerificationService verificationService null;AddressVerificationServiceProvider provider null;provider new YahooAVS();//to use YAHOO AVSprovider new GoogleAVS();//to use Google AVSverificationService new AddressVerificationService(provider);String lnl verificationService.validateAddress(HitechCity, Hyderabad);System.out.println(lnl); 对于单元测试我们可以实现一个Mock AddressVerificationServiceProvider。 class MockAVS implements AddressVerificationServiceProvider{Overridepublic String validateAddress(String address) {System.out.println(Verifying address using MOCK AddressVerificationService);return responselongitude123/longitudelatitude4567/latitude;}}AddressVerificationServiceProvider provider null;provider new MockAVS();//to use MOCK AVS AddressVerificationServiceIOC verificationService new AddressVerificationServiceIOC(provider);String lnl verificationService.validateAddress(Somajiguda, Hyderabad);System.out.println(lnl); 通过这种方法我们可以解决上述基于非IOC / DI的方法的问题。 1.我们可以根据需要提供尽可能多的商品。 只需实现AddressVerificationServiceProvider并将其注入即可。 2.我们可以使用模拟实现使用虚拟数据进行单元测试。 因此通过遵循“依赖注入”原理我们可以创建基于接口的松散耦合且易于测试的服务。 参考 我是如何通过JCG合作伙伴 Siva Reddy在“ 我的实验”博客上 向我的团队解释依赖注入的 。 翻译自: https://www.javacodegeeks.com/2012/06/how-i-explained-dependency-injection-to.html依赖注入通俗解释
http://www.zqtcl.cn/news/215304/

相关文章:

  • 百度竞价排名规则及费用seo怎么做整站排名
  • 网站免费模板资源商标设计一般多少钱
  • 视频微网站开发谷歌怎么做网站推广
  • 微信公众号服务号网站开发流程网站推广网络
  • 徐州网站建设技术wordpress 分辨 模版
  • 慈溪企业网站建设公司wordpress网盘搜索引擎源码
  • 建筑类企业网站模板怎么制作网站链接
  • 常州网站建设外包襄阳做网站的
  • 临清网站优化用jsp做网站的感想
  • 个人工作室网站网站备案 万网
  • 网络推广模板网站会员管理软件
  • 西乡塘网站建设网站建设公司的成本有哪些方面
  • 在哪里可以学习做网站西安制作公司网站的公司
  • 网站建设 更新 维护淮北矿业工程建设公司网站
  • 网站开发 平台宝应做网站
  • 网站开发开题报告广州的兼职网站建设
  • 辽宁同鑫建设网站网站后期维护费用
  • 政法网站建设有哪些不足广州网站建设信息科技有限公司
  • 营销型网站 平台海口智能建站价格
  • 网站空间过期电商网站建设比较好的
  • seo公司 彼亿营销舆情优化公司
  • diango是做网站的后端吗网页怎么做成app
  • 思勤传媒网站建设公司如何查询网站的外链
  • 网站设计思路文案范文专业手机网站建设多少钱
  • 有部分网站打不开网站服务内容怎么写
  • 百度安全网站检测好看的免费的小说网站模板
  • 锡山区住房和城乡建设局网站免费ppt模板下载简约
  • 建设银行 杭州招聘网站建设工程有限公司是干什么的
  • 做网站必须购买空间吗?3点新闻发布
  • 济南集团网站建设流程东莞做网站公司首选