gpt4 book ai didi

oop - 什么是公开封装类方法的经验法则

转载 作者:行者123 更新时间:2023-12-04 17:28:20 24 4
gpt4 key购买 nike

考虑以下类比:
如果我们有一个类:“Car”,我们可能希望它有一个“Engine”的实例。如:“汽车有一个引擎”。类似地,在“Engine”类中,我们希望有一个“Starting System”或“Cooling System”的实例,它们都有相应的子组件。

根据封装的性质,汽车“HAS-A”“散热器软管”和发动机不一样吗?

因此,做这样的事情是否适合 OO:

public class Car {
private Engine _engine;

public Engine getEngine() {
return _engine;
}

// is it ok to use 'convenience' methods of inner classes?
// are the following 2 methods "wrong" from an OO point of view?
public RadiatorHose getRadiatorHose() {
return getCoolingSystem().getRadiatorHose();
}

public CoolingSystem getCoolingSystem() {
return _engine.getCoolingSystem();
}
}

public class Engine {
private CoolingSystem _coolingSystem;

public CoolingSystem getCoolingSystem() {
return _coolingSystem;
}
}

public class CoolingSystem {
private RadiatorHose _radiatorHose;

public RadiatorHose getRadiatorHose() {
return _radiatorHose;
}
}

public class RadiatorHose {//...
}

最佳答案

查看 Law of Demeter .

关于oop - 什么是公开封装类方法的经验法则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com