程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 對接口編程的簡單理解

對接口編程的簡單理解

編輯:關於JAVA

首先,使用接口編程是為了提高程序的可維護性和可伸縮性。如果你在一個類裡使用組合調用另一個類時,你直接使用另一個具體的類,這樣的話你就不這個類寫死了,以後假如業務邏輯變化時,你就必須修改原代碼。你如果寫的是一個接口,當業務邏輯變化時你只需寫一個新的類讓他實現這個接口。

第二,你還要用類似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>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved