<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                對于簡單工廠模式的補充:面向對象的編程,并不是類越多越好,類的劃分是為了封裝,但是分類的基礎是抽象,具有相同屬性和功能的對象的抽象集合才是類(摘抄)。舉個簡單的例子,用baidu和google去搜csdn,這時就沒有必要去創建兩個類,只需要創建一個類,穿一個頁面的地址進去就行,因為操作的方法是一樣的,都是搜索csdn,只是網址的差別。 ### 策略模式 它定義了算法家族,分別封裝起來,讓它們之間可以相互替換,此模式讓算法的變化,不會影響使用算法的客戶(摘抄)。 我感覺策略模式就是純封裝算法的模式,把要實現同一個目的,但是達到目的的方式不同。 還是用昨天的計算的例子來舉例算了,這樣可以比較簡單的看出來兩種模式的對比。 工廠模式是把加減乘除當成不同的概念,策略模式是把加減乘除當作不同的方法,它們都屬于計算這個概念。 ~~~ //策略模式就要先生成一個策略類(抽象類) public abstract class Operation { public abstract double oper(int a,int b); } public class Add extends Operation { @Override public double oper(int a,int b) { //加法方法 } } ...... //省略號后面分別實現減,乘,除 ~~~ 算法類都寫完之后,這時就要寫一個使用的類了 ~~~ public class domethod { Operation op = null; public select(String type) { switch (type) { case "+": op = new Add(); break; ...... } }//與簡單工廠模式結合 public double result (double a,double b) { return op.oper(a,b); } } ~~~ 在計算器調用操作類時 ~~~ Domethod method = new Domethod(); method.select("+"); method.result(1,2); ~~~ 這樣使用策略模式和簡單工廠模式的結合就只需要實例化一個類就可以了,而單純的簡單工廠模式需要實例化父類和工廠類 這個樣子,代碼的藕合度又降低了 ### 總結 策略模式結合簡單工廠模式使用,可以使藕合度比單純的使用簡單工廠模式低! 策略模式的用處在于需要在不同的時候使用不同業務規則!(摘抄) 個人理解策略于簡單工廠模式的區別,簡單工廠模式分離的是對象,而策略模式分離的是規則(所以父類中沒有屬性),用同一個例子使用兩種模式,也代表了兩種不一樣的面向對象的理解,抽象的層次不一樣。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看