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 阅读(264) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: