美文网首页
那些你要知道的设计原则之-迪米特法则

那些你要知道的设计原则之-迪米特法则

作者: 小巨人Vea | 来源:发表于2018-04-22 12:05 被阅读21次

1.定义

1.一个对象应当对其他对象有尽可能少的了解
2.只与直接的对象通信

2.作用

  • 降低类间耦合度,减低模块之间的影响
  • 提高模块的扩展性

3.案例

以顾客向售货员买衣服为例,创建三个对象:顾客,售货员,服装。顾客类有购买衣服方法,售货员类有销售方法,服装类有衣服方法

/**
 * 顾客
 */
public class Customer {

    //购买衣服方法
    public void  buyClothes(Salesperson salesperson){
        //创建衣服
        Clothing clothing = new Clothing();
        //售货员卖衣服给我
        salesperson.sells(clothing);
    }
}

顾客购买衣服方法中,先创建衣服,售货员再卖衣服给我。

/**
 * 售货员
 */
public class Salesperson {

        //销售方法
        public void sells(Clothing clothing){
            clothing.clothes();
        }

}


/**
 * 服装
 */
public class Clothing {

    //衣服
    public void  clothes(){
        System.out.print("衣服");
    }

}

在上述实例中顾客和售货员都对衣服有依赖,顾客把衣服拿出来再让售货员卖给我。难道不应该是顾客叫售货员把衣服拿过来推销给我的吗?程序修改如下

顾客购买衣服只和售货员产生依赖

/**
 * 顾客
 */
public class Customer {

    //顾客购买衣服
    public void  buyClothes(Salesperson salesperson){
       //售货员开始销售
        salesperson.sells();
    }

}

售货员通过通过构造函数方法把服装传递进来

/**
 * 售货员
 */
public class Salesperson {

    private Clothing clothing;


    public void Salesperson(Clothing clothing) {
        this.clothing = clothing;
    }

    //销售方法
    public void sells(){
        clothing.clothes();
    }

}

这样的修改之后避开了顾客和衣服之间的依赖减低了类间的耦合,提高了系统的健壮性

4.总结

迪米特法则主要是针对类的,降低成员的访问限制和public方法,一个类尽量减少和其他类之间的相互作用,一个方法里面最好不要创建其他的对象,类和类之间的关系应该建立在类间。以来提高模块的独立性,和扩展性

相关文章

网友评论

      本文标题:那些你要知道的设计原则之-迪米特法则

      本文链接:https://www.haomeiwen.com/subject/umodqftx.html