本来想昨晚写博客的,但是昨晚女朋友住在这儿的,所以今晚来写(坏笑)。
我们通过一个实例来看一下面向接口编程的重要性。初学的时候一般都是讲的这个学生管理系统,利用分层的思想,很容易想到有:界面层、业务服务层、数据访问层、数据层(当然这最底层是数据库)对每一层分别建包:view、service、dao、entity 。然后像我这种初学者菜鸟,很容易就开始对没一个包建类,但是我们需要在dao里边儿建一个接口StudentDAO,然后通过具体的类的实现这个接口。为什么???
假设我在数据访问层里面产生一个addStudent方法,那么可能使用JDBC添加,也可能使用Hibernate添加,如果我不用接口,自然而然会想到先建一个StudentDAO类,然后在里面产生addStudent方法,新建StudentJDBC和StudentHibernate两个类来继承,StudentDAO,然后重写方法。当然,这种方法对我来说是可以的,因为我还不会使用多线程(先前看了会儿帖稍微补了下继承与接口相比较的优缺点),所以,这个时候就需要使用到接口。在接口StudentDAO里面声明addStudent方法,然后通过不同的类来实现该接口。同时,面向接口编程能很好的解决很多耦合问题,这个是需要代码经验才能感受到的(现在自己就做过一两个小项目,所以也只是有一点点小感触)。另外,面向接口编程让我们的逻辑更加清晰,这个真心太重要,上次去实训就是被智文狠狠的打脸了,人家以前就经常做项目,所以逻辑思维真心棒,经验累积的。接口的设计让我们分析问题的时候能做到“不拘小节”,先把宏观上的分层和模块理顺,再实现细节性的问题。
这些小经验积累下来,养成总结的好习惯,生活也会越来越美好,加油,晚安!