<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
    主站蜘蛛池模板: 中文字幕在线日亚洲9| 亚洲深深色噜噜狠狠网站| a在线视频免费观看在线视频三区| 成人免费无毒在线观看网站 | 亚洲欧洲自拍拍偷精品 美利坚| 无码亚洲成a人在线观看| 在线免费观看毛片网站| 亚洲AV日韩AV无码污污网站| 日本高清免费aaaaa大片视频| 亚洲成a人片在线观看天堂无码| 性做久久久久免费看| 一级特黄色毛片免费看| 亚洲综合熟女久久久30p| 久久99免费视频| 亚洲福利一区二区三区| 成人一a毛片免费视频| 美女扒开尿口给男人爽免费视频 | 国产精品亚洲五月天高清| 亚洲A∨午夜成人片精品网站| 一级毛片免费在线| 亚洲国产香蕉碰碰人人| 99在线视频免费观看视频| 精品亚洲国产成人av| 国产偷国产偷亚洲清高动态图| 久久狠狠躁免费观看2020| 亚洲av午夜精品无码专区| 国产成人免费高清在线观看| 一级做a毛片免费视频| 亚洲天堂一区二区| 日韩激情无码免费毛片| 99精品视频免费| 亚洲精品免费网站| 亚洲欧洲日本在线| 久久99九九国产免费看小说| 久久久久久亚洲精品无码| 亚洲人成精品久久久久| 成人午夜视频免费| 免费无码又爽又刺激一高潮| 亚洲欧洲免费无码| 亚洲AV永久无码精品水牛影视| 无码专区永久免费AV网站 |