java中的策略模式與模板方法

來源:互聯網
上載者:User

策略模式屬於行為型模式,其中體現了兩個基本物件導向設計的基本原則:1,封裝;2,介面

1)    許多相關的類僅僅是行為有異。“策略”提供了一種用多個行為中的一個行為來配置一個類的方法。

2)    系統中有一些類它們僅行為不同時,可以考慮採用策略模式來進行重構;

3)    系統中存在多重條件選擇語句時,可以考慮採用策略模式來重構。

 

優點:

1 多用組合來實現動態添加行為,而少用繼承(繼承使得耦合性增加)。
2 面向抽象(介面)編程,而不要具體實現編程。
3 策略模式是把各種可能變化的東西(演算法)進行了封裝,這樣就實現了變化的部分和保持不變的部分分離,進而減低代碼的耦合性。

缺點:用戶端必須知道所有的策略類,並自行決定使用哪一個策略類,所以必須對每一個演算法瞭解

 

dao類:

    public userInfo findUserName(String name)
    {
        userInfo userInfo=null;
        try
        {
            String sql = "select * from userinfo where uname=?";
            userInfo=(userInfo)super.get(sql, new Object[]{name},new Mapper()
            {
                @Override
                public Object mappingObject(ResultSet rs)
                {
                    try
                    {
                        if(rs.next()){
                            userInfo user = new userInfo();               
                            user.setUname(rs.getString("uname"));
                            user.setUpass(rs.getString("upass"));               
                            return user;
                        }
                    } catch (SQLException ex)
                    {
                        // TODO Auto-generated catch block
                        ex.printStackTrace();
                        return null;
                    }
                    return null;
                }
            });       
            return userInfo;
        } catch (Exception e)
        {
            e.printStackTrace();
            return null;
        }
    }

mapper介面:
public interface Mapper
{
    public Object mappingObject(ResultSet rs);
}

模板方法:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.