Java on Guice - Developer Day Slides.pdf

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java on Guice - Developer Day Slides

Java on Guice Dependency Injection the Java Way Bob Lee Copyright 2007 Google Inc.3 What can dependency injection do for me? ? Easier testing ? More decoupling ? Less boilerplate ? Better maintainability A Simple Example Copyright 2007 Google Inc.5 High Level Design ClientClientTest Service ServiceImpl Copyright 2007 Google Inc.6 We’ll examine 3 approaches... 1. The Factory Pattern 2. Dependency Injection by Hand 3. Dependency Injection with Guice Copyright 2007 Google Inc.7 One Variable ? From approach to approach, how does Client get a Service? Client Service Copyright 2007 Google Inc.8 A Few Constants public interface Service { void go(); } public class ServiceImpl implements Service { public void go() { // Some expensive stuff. ... } } Service ServiceImpl ? Regardless of the approach, Service stays the same: Copyright 2007 Google Inc.9 Mock Service public class MockService implements Service { private boolean gone = false; public void go() { gone = true; } public boolean isGone() { return gone; } } Service MockService ? We also need a mock implementation of Service which we can use to test clients: Approach #1: The Factory Pattern Copyright 2007 Google Inc.11 The Factory Client public class Client { public void go() { Service service = ServiceFactory.getInstance(); service.go(); } } Copyright 2007 Google Inc.12 Service Factory public class ServiceFactory { private ServiceFactory() {} private static Service instance = new ServiceImpl(); public static Service getInstance() { return instance; } public static void setInstance(Service service) { instance = service; } } Copyright 2007 Google Inc.13 A Unit Test public void testClient() { Service previous = ServiceFactory.getInstance(); try { final MockService mock = new MockService(); ServiceFactory.setInstance(mock); Client client = new Client(); client.go(); assertTrue(mock.isGone()); } finally { ServiceFacto

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档