首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 复习指导 >

二级Java——针对接口编程的浅解

2009-04-03 
针对接口编程的浅解

    首先,使用接口编程是为了提高程序的可维护性和可伸缩性。如果你在一个类里使用组合调用另一个类时,你直接使用另一个具体的类,这样的话你就不这个类写死了,以后假如业务逻辑变化时,你就必须修改原代码。你如果写的是一个接口,当业务逻辑变化时你只需写一个新的类让他实现这个接口。
  第二,你还要用类似spring这样的东西,实现松耦合,利用配置文件修改程序。比如要完成一个登录功能:
  我先写dao层,其中用到了4个类,
  DaoBase.java,用来得到user对象
  package com.ssh2demo.dao;
  import com.ssh2demo.domain.User;
  public abstract class DaoBase {
  private User user;
  public User getUser() {
  return user;
  }
  public void setUser(User user) {
  this.user = user;
  }
  }
  IUserDao.java,一个接口,用来封装登录的方法
  public interface IUserDao {
  public void insertUser();
  public boolean getUserByName(String name);//如果返回true代表登录成功
  }
  IUserDao的实现类UserDaoImp.java
  package com.ssh2demo.dao;
  import com.ssh2demo.domain.User;
  public class UserDaoImp extends DaoBase implements IUserDao{
  //..插入一个user
  User user = new User();
  public void insertUser(){
  user.setAge(23);
  user.setName("hth");
  user.setPassword("123456");
  }
  public boolean getUserByName(String name){
  insertUser();
  if(user.getName().equals(name))
  return true;
  else
  return false;
  }
  }
  UserDaoDeco.java这个类继承了UserDaoImp,用来向spring文件里注入
  <bean id="userDaoDeco" class="com.ssh2demo.dao.UserDaoDeco"></bean>
  <bean id="userServiceImp" class="com.ssh2demo.service.UserServiceImp">
  <property name="userDaoDeco">//此处其实这步的属性可以直接放接口,注入的类放实现类就 //可以
  <ref bean="userDaoDeco"/>
  </property>
  </bean>
  UserDaoDeco.java
  package com.ssh2demo.dao;
  import com.ssh2demo.dao.UserDaoImp;
  public class UserDaoDeco extends UserDaoImp{
  }
  然后写service层,service层用了一个工厂类和工厂接口,用来管理service类,这样写方便了在action里我只要注入工厂类就可以了,所有的service我都可以通过工厂获得
  <bean id="loginAction" class="com.ssh2demo.struts2.LoginAction" singleton="false">
  <property name="service">//此处放一个接口,直接让action不关心类的具体实现,实现了松耦合
  //使程序易于改动,做到了新加而不是修改。
  <ref bean="serviceFactory"/>
  </property>
  </bean>

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行