最少知识原则-headfirst

最少知识原则

先看一段错误例子,这段代码耦合了多少类

public float getTemp() {
    return station.getThermometer().getTemperature();
}

其中,station.getThermometer()返回时一个对象,然getTemperature()是前者返回对象的方法,这里属于耦合

错误改进,实际上与上一致

public float getTemp() {
    Thermometer thermometer = station.getThermometer();
    return thermometer.getTemperature();
}

正确改进

public float getTemp() {
    return station.getThermometer();
}

在对象方法内,我们允许调用哪些对象的方法

简单理解为以下4个小原则

  1. 该对象本身
  2. 方法参数传入对象
  3. 方法内实例的对象
  4. 对象组件

正确例子对应代码,允许调用的方法

package headfirst.hd.facade.eg.error;

public class Car {
    Engine engine;

    public Car(Engine engine) {
        this.engine = engine;
    }

    public void start(Key key) {
        Doors doors = new Doors();

        boolean anthorized = key.turn();   //[2]方法参数传入对象
        if (anthorized) {
            engine.start();  //[4]对象组件
            updateDisplay();  //[1]该对象本身
            doors.lock();  //[3]方法内实例的对象
        }
    }

    //更新显示
    public void updateDisplay() {
        // TODO Auto-generated method stub

    }

}

尽量尊重以上四条原则就可以了

java设计中,违背最少知识原则举列子

System.out.println();

其中System.out为当前结果对象

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值