HeadFast设计模式之最少知识原则

什么是最小知识原则

最小知识原则就是在设计代码的时候,注意减少对象之间的交互,只和满足条件的对象进行交互。

最小知识原则的特点

1 最小知识原则与德墨忒尔法则的关系?
答 :其实这两个名词指的是同一个原则,但是我们更倾向于使用最小知识原则称呼,原因有两个,(1)这个名字更直接。(2)法则给人的感觉是强制,事实上没有任何原则是法律。
2 最小知识原则有哪些缺点?
答:虽然这个原则减少了对象之间的依赖,但是会导致使用更多的包装类,可能导致时间复杂度和空间复杂度的增加,降低运行中的性能。

最小知识原则的条件

对于任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法

  1. 该对象本身
  2. 被当做对象本身方法的参数而传递进来的对象
  3. 此方法所创建或实例化的任何对象
  4. 对象的任何组件
这样看是有点懵逼,下面通过例子说明
public class TestDemo2 {
    // 4 对象的组件
    private  light = new Light();

    public TestDemo2() {
    }
    public String getName(){
        return "测试dmo";
    }
    public void demo(Door door){
        // 3此方法所创建或实例化的任何对象
        AirCondition airCondition = new AirCondition();
        airCondition.on();

        // 4 对象的组件的方法
        light.on();

        // 2 被当做对象本身方法的参数而传递进来的对象
        door.on();

        // 1. 对象本身的方法
        System.out.println(this.getName());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值