迪米特法则(设计模式_13)

迪米特法则简单易懂的话语来描述就是:知道的越少越好,什么知道越少越好呢,两个类之间交互的越少越好,从而可以减低耦合度,当两个类之间的交互很少,耦合度就会降低,耦合度一旦降低,修改其中一个类就不会对另外一个类造成影响:


我们直接看案例来说明分析:

以下是违反了迪米特法则案例:
煮菜类与买菜类,洗菜类,交互的比较多,耦合度增高:

/**
 * 定义一个买菜类
 * @author Liudeli
 */
class Food {

    /**
     * 此方法是买菜的行为
     */
    public static void doMethod() {
        System.out.println("买了一条鱼,买了一只鸡,买了一头猪....");
    }

}

/**
 * 创建一个洗菜的类
 * @author Liudeli
 */
class Wash {

    /**
     * 此方法是洗菜的行为
     */
    public static void doMethod() {
        System.out.println("洗好了一条鱼,洗干净一只鸡,洗完了一头猪....");
    }

}

/**
 * 创建一个煮菜的类
 * @author Liudeli
 */
public class Cook {

    /**
     * 此方法是煮菜的行为
     */
    public static void doMethod() {
        Food.doMethod();
        Wash.doMethod();
        System.out.println("煮好了一条鱼,煮熟了一只鸡,烤完了一头猪....");
    }

    /**
     * 模拟餐饮 测试程序
     * @author Liudeli
     */
    public static void main(String[] args) {
        Cook.doMethod();
    }
}

运行结果:
这里写图片描述


以下是迪米特法则案例:

/**
 * 定义一个买菜类
 * @author Liudeli
 */
class Food {

    /**
     * 此方法是买菜的行为
     */
    public static void doMethod() {
        System.out.println("买了一条鱼,买了一只鸡,买了一头猪....");
    }

}

/**
 * 创建一个洗菜的类
 * @author Liudeli
 */
class Wash {

    /**
     * 此方法是洗菜的行为
     */
    public static void doMethod() {
        System.out.println("洗好了一条鱼,洗干净一只鸡,洗完了一头猪....");
    }

}

/**
 * 创建一个煮菜的类
 * @author Liudeli
 */
public class Cook2 {

    /**
     * 此方法是煮菜的行为
     */
    public static void doMethod() {
        System.out.println("煮好了一条鱼,煮熟了一只鸡,烤完了一头猪....");
    }

    /**
     * 模拟餐饮 测试程序
     * @author Liudeli
     */
    public static void main(String[] args) {
        Food.doMethod();
        Wash.doMethod();
        Cook2.doMethod();
    }
}

运行结果,和上面一模一样:
这里写图片描述


谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值