dream.in.java

          能以不變應萬變是聰明人做事的準則。萬事從小事做起,積累小成功,問鼎大成功,是成功者的秘訣。

          迪米特法則和依賴倒轉原則應用[原]

          迪米特法則的表述:
          只與你直接的朋友們通信
          不要跟“陌生人”說話
          每一個軟件單位其他的單位都只有最少的知識,而且局限于那些與本單位密切相關的軟件單位


          具體做法:如果其中之一人類需要調用另一個類的某個方法的話,可以通過第三者轉發這個調用。
          例如:某人如果要調用陌生人中的一個方法,剛可以通過朋友來轉發,而不自己去調用,這樣一來就使系統內部的耦合度降低。





          具體代碼:

           1 package pattern.LoD;
           2 
           3 public class Someone {
           4 
           5     public void operation1(Friend friend) {
           6         // TODO Auto-generated method stub
           7 //        friend.forward();
           8         AbstractStranger stranger = friend.provide();
           9         stranger.operation3();
          10     }
          11 
          12 }
          13 ///////////////////
          14 package pattern.LoD;
          15 
          16 public class Friend {
          17 //    private Stranger stranger = new Stranger();
          18     private AbstractStranger stranger = new Stranger();
          19     
          20     
          21     public void operation2(){
          22         System.out.println("In Friend.operation2()");
          23     }
          24     /*
          25     public void forward(){
          26         stranger.operation3();
          27     }
          28     */
          29     public AbstractStranger provide() {
          30         // TODO Auto-generated method stub
          31         
          32         return stranger;
          33     }
          34 
          35 }
          36 /////////////////////
          37 package pattern.LoD;
          38 
          39 public interface AbstractStranger {
          40     abstract void operation3();
          41 }
          42 ////////////////////
          43 package pattern.LoD;
          44 
          45 public class Stranger implements AbstractStranger{
          46     public void operation3(){
          47         System.out.println("I want to a friend of Someone~~");
          48     }
          49 
          50 }
          51 //////////////////////
          52 package pattern.LoD;
          53 
          54 public class Main {
          55 
          56     /**
          57      * @param args
          58      */
          59     public static void main(String[] args) {
          60         // TODO Auto-generated method stub
          61         Someone someone = new Someone();
          62         Friend friend = new Friend();
          63         someone.operation1(friend);
          64     }
          65 
          66 }
          67 

          posted on 2009-05-03 11:41 YXY 閱讀(268) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 普定县| 定南县| 获嘉县| 彩票| 沭阳县| 读书| 柳江县| 衡山县| 贵定县| 淳化县| 阿图什市| 虹口区| 遂平县| 花莲县| 建湖县| 陆川县| 康乐县| 莱芜市| 河津市| 山阴县| 沧源| 孟村| 石屏县| 台南县| 乐山市| 吉隆县| 新宁县| 大同县| 凤翔县| 郧西县| 光泽县| 治多县| 德兴市| 蒙自县| 阜南县| 潞西市| 拉萨市| 连城县| 上栗县| 漯河市| 北海市|