android使用分层架构企业应用(一)
背景:在用android开发企业应用的时候,发现按照传统的模式开发的代码结构比较差,业务逻辑处理与Activity是放在一起处理的,结构不清晰,类与类之间的耦合度较高,类的功能复杂,导致单元测试也很难开展;所以就有办法保证这个版本的稳定性,于是我跟我的团队都没有信心。因为我压根不知道程序什么时候会无缘无故报出一个bug,我总结一下原因是对过程缺乏必要的跟踪,导致业务行为模糊。我需要用敏捷管理的思想解决这些问题,所以我就开始重构了。
	重构的目标:
	采用分层架构思想将类解耦,使类遵循单一职责原则。
	加入单元测试以保证过程跟踪。
	加入自动化构建工具并集成代码检查工具。
	加入持续集成输入单元测试结果及代码覆盖率。
	
	具体实现:
	将业务逻辑处理单独分离出来,并与Context分离,使其成为与android无关的可独立运行的类如:
	SessionManagerService.java
	Java代码 
	public interface SessionManagerService { 
	    // 用户登录 
	    public String login(User user)throws RequestError; 
	} 
	就这么一个接口它的职责非常单一,就提供一个登录操作的方法。
	关于这个接口的实现类代码就不贴了,实现了这个接口后就可以用单元测试对这个方法进行验证。
	SessionManagerServiceTest.java
	Java代码 
	public class SessionManagerServiceTest extends AndroidTestCase { 
	 
	    private SessionManagerService sms; 
	 
	    @Override 
	    protected void setUp() throws Exception { 
	        super.setUp(); 
	        sms = new SessionManagerServiceImpl(); 
	    } 
	 
	    /**
	     * 测试登录成功
	     * 
	     * @throws Exception
	     */ 
	    @LargeTest 
	    public void testLoginSuccess() throws Exception { 
	        User user = new User(); 
	        user.setUserName("qnlpkuge"); 
	        user.setPassword("111111"); 
	        String result = sms.login(user); 
	        assertEquals("true", result); 
	 
	    } 
	 
	    /**
	     * 测试用户名不存在
	     * 
	     * @throws Exception
	     */ 
	    @LargeTest 
	    public void testUserNotExist() throws Exception { 
	        User user = new User(); 
	        user.setUserName("qnlpkugedfswe"); 
	
相关新闻>>
- 发表评论
- 
				
- 最新评论 进入详细评论页>>





