<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-199  評論-203  文章-11  trackbacks-0
    首先,使用接口編程是為了提高程序的可維護性和可伸縮性。如果你在一個類里使用組合調用另一個類時,你直接使用另一個具體的類,這樣的話你就不這個類寫死了,以后假如業務邏輯變化時,你就必須修改原代碼。你如果寫的是一個接口,當業務邏輯變化時你只需寫一個新的類讓他實現這個接口。
          第二,你還要用類似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>
    posted on 2009-04-01 08:16 Werther 閱讀(1773) 評論(0)  編輯  收藏 所屬分類: 10.Java
    主站蜘蛛池模板: XXX2高清在线观看免费视频| 亚洲中文字幕无码久久综合网| 亚洲国产成人久久三区| 永久免费视频网站在线观看| 久久久久久亚洲av成人无码国产| 麻豆精品成人免费国产片| 日韩精品一区二区亚洲AV观看| 全部免费毛片在线播放| 亚洲成人网在线播放| 四虎精品亚洲一区二区三区| 亚洲色中文字幕在线播放| 成人免费视频一区二区三区| 亚洲熟女乱色一区二区三区 | 国产亚洲视频在线观看| 日本a级片免费看| 无人视频免费观看免费视频| 一本色道久久综合亚洲精品高清| 国产精品偷伦视频观看免费| 亚洲综合男人的天堂色婷婷| 最近中文字幕免费mv视频7| 亚洲JIZZJIZZ妇女| 久久久久国产亚洲AV麻豆| 国产一区二区免费| 亚洲一级高清在线中文字幕| 麻豆国产精品入口免费观看| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲AV无码AV男人的天堂| 18禁网站免费无遮挡无码中文| 亚洲熟女综合色一区二区三区| 亚洲一区二区三区乱码A| 国内少妇偷人精品视频免费| 亚洲一区二区三区无码国产 | 亚洲AV永久无码精品一百度影院| 51视频精品全部免费最新| 亚洲av无码一区二区三区四区| 亚洲精品国产精品乱码不卞| 成人免费视频77777| 香港特级三A毛片免费观看 | 亚洲日韩国产精品乱-久| 亚洲人成无码www久久久| 日本高清在线免费|