发表于: 2017-07-29 23:23:59
1 947
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、收获
掌握了一些上述提及的概念性的知识点。
评论