gpt4 book ai didi

面向对象设计 : Car - Connection between Tank and Engine

转载 作者:行者123 更新时间:2023-12-04 11:13:47 26 4
gpt4 key购买 nike

我不确定我是否疯狂地违反了 OOP 概念。
说有一个 Car 具有 ”和 Engine 的类和一个 Tank .
Engine正在运行,它将从 Tank 取油(尽管油是不可数的,但每个周期一个单位说一个单位)Engine应该怎么做从 Tank 获取石油? (当两者都是 Car 的字段时?)

实际上是 Engine应该不断地“供应”油而不是
比“得到”石油。应该有"OilCirculatingSystem"Tank 获取石油
并供应给 Engine .如何在类里面为这个系统建模?
有没有合适的设计模式?
enter image description here

** * 编辑:简单地说,如何从 Tank 获得“油流”至 Engine ? (当阀门打开时,Oil 是否有责任从 Tank 流向 Engine

最佳答案

对不起,如果它炸了大脑。缺少方法的实现,但你得到了我希望的想法。

class Tank
{
Oil oil;

public Tank(OilPipe pipe)
{
pipe.OilNeeded += new EventHandler<OilNeededEventArgs>(pipe_OilNeeded);
}

public void FillOil(Oil oil) { }

void pipe_OilNeeded(object sender, OilNeededEventArgs e)
{
e.Oil = oil.SubtractLiters(5);
}
}

class OilPipe
{
public event EventHandler<OilNeededEventArgs> OilNeeded;

public Oil SuckOil();
}

class Piston
{
public void Move() { }
}

class Oil
{
public Energy Burn() { }
}

class Energy
{
public void Push(Piston piston) { }
}

class Engine
{
OilPipe oilPipe;

public Engine(OilPipe oilPipe, Piston piston)
{
this.oilPipe = oilPipe;
}

public void MovePiston()
{
Oil oil = oilPipe.SuckOil();
Energy energy = Burn(oil);
energy.Push(piston);
}
}

class Car
{
Engine engine;

public Car(Engine engine, Tank tank)
{

}

public void Accelerate()
{
engine.MovePiston();
}
}

关于面向对象设计 : Car - Connection between Tank and Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860742/

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