发表于: 2017-07-29 23:23:59

1 948


1、今日完成

1)学习控制反转(Inversion of Control)、依赖注入(Dependency Injection)、依赖查找(Dependency Lookup)、耦合性(Coupling)、硬编码(Hard Coding)和反模式(anti-pattern)等概念;

IoC:把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。

Dependency Lookup:容器提供回调接口和上下文环境给组件。

Dependency Injection:组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系。

概念结构如下:

2)学习业务对象模型(领域模型 domain model)、贫血模型、充血模型概念。

贫血模型:指domain对象里只有get和set方法(POJO),所有的业务逻辑都不包含在内而是放在Business Logic层。系统的层次结构清楚,各层之间单向依赖,层次结构:Client->(Business Facade)->Business Logic->Data Access Object。

充血模型:层次结构和贫血模型类似的差不多,不过大多业务逻辑和持久化放在Domain Object里面,Business Logic只是简单封装部分业务逻辑以及控制事务、权限等,这样层次结构就变成Client->(Business Facade)->Business Logic->Domain Object->Data Access Object。

3)学习Spring基础知识,了解Bean、container。

4)学习单元测试的基本概念,参考他人实例,编写了一个Junit4的用例:

import jdk.nashorn.internal.ir.annotations.Ignore;

import org.junit.*;

/*

 * Created by gl1687 on 2017/7/29.

 */

public class Junit4Test {

    @BeforeClass

    public  static  void setUpBeforeClass(){

        System.out.println("Set up before class");

    }

    @Before

    public  void setUp() throws Exception{

        System.out.println("Set up");

    }

    @Test

    public void testMathPow(){

        System.out.println("Test Math.pow");

        Assert.assertEquals(4.0,Math.pow(2.0,2.0),0.0);

    }

    @Test

    public  void testMathMin(){

        System.out.println("Test Math.min");

        Assert.assertEquals(2.0, Math.min(2.0, 4.0), 0.0);

    }

    //抛出NullPointerException异常

    @Test(expected=NullPointerException.class)

    public  void testException(){

        System.out.println("Test exception");

        Object obj=null;

        obj.toString();

    }

    //忽略测试方法

    @Ignore

    @Test

    public void testMathMax() {

        Assert.fail("没有实现");

    }

    // 使用“假设”来忽略测试方法

    @Test

    public void testAssume(){

        System.out.println("Test assume");

        // 当假设失败时,则会停止运行,但这并不会意味测试方法失败。

        Assume.assumeTrue(false);

        Assert.fail("没有实现");

    }

    @After

    public void tearDown() throws Exception {

        System.out.println("Tear down");

    }

    @AfterClass

    public static void tearDownAfterClass() {

        System.out.println("Tear down After class");

    }

}

执行结果,如下:

5)学习注解(Annotation)的基本概念。

2、明日计划

学习配置Spring和JUnit,完成任务19~21;

3、遇到的问题

目前学习过程中,遇到的问题是每天需要花费较多时间去学习新的知识点,学习SSM框架一些基本东西,但是容易遗忘;计划从明日起,结合技能树和深度思考,带着疑问有意识地去练习task,同时思考这些技能要求和问题的解决之道。另外,今天有系统分配的一名师弟提交了日报,而我对于其中提出来的不少问题感到十分棘手,说明前期学习尚有较大不足,接下来需要不断复习和加强拓展。

4、收获

掌握了一些上述提及的概念性的知识点。






返回列表 返回列表
评论

    分享到