快速业务通道

对接口编程的简单理解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-13

对接口编程的简单理解

时间:2012-01-28 Werther

首先,使用接口编程是为了提高程序的可维护性和可伸缩性。如果你在一个类里使用组合调用另一个类时,你直接使用另一个具体的类,这样的话你就不这个类写死了,以后假如业务逻辑变化时,你就必须修改原代码。你如果写的是一个接口,当业务逻辑变化时你只需写一个新的类让他实现这个接口。

第二,你还要用类似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>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号