想象一下我有一个fishTank
班。此类将代表一个鱼缸,它的大小,在其中可以放置鱼的某些边界,在不能放置鱼的某些障碍,通过鱼缸的一些水流中移动鱼等。
class fishTank
{
private:
double length;
double height;
//And some more complex things that define a fish tank
public:
fishtank(double,double,...);
}
现在我需要在鱼缸中添加鱼。宣告我的鱼类类别的适当方法是什么? (鱼代表一大群鱼)
- 我的鱼将永远放在
fishTank
内,我一个人独享鱼是没有道理的。
鱼需要了解 - 同一缸中可以有很多不同种类的鱼。
fishTank
的属性,鱼类中的所有内容都取决于鱼缸:如何在鱼缸中装载鱼取决于鱼缸的大小,鱼的移动方式取决于陷阱的大小和性质等。
我的第一个尝试是创建fish类,并将tank作为鱼构造函数中的参数传递。然后将鱼的矢量作为私人成员添加到水箱中:
class fish
{
private:
//All properties of fish
public:
fish(const fishTank& aTank,All other properties of fish);
}
class fishTank
{
private:
std::vector<fish> fishInTank;
//Same as before
public:
//Same as before;
}
这真的是实现我所需的正确方法吗?我只是认为这不是一个好的设计,我将需要鱼缸作为鱼的参数,然后将每条鱼添加到鱼缸中。这有道理吗?
这是实现诸如抽象鱼类之类的东西,还是在鱼缸内筑巢鱼的正确场所?